Problem bei SQL und PHP



  • Hallo,

    ich habe ein kleinen Shop mit PHP und SQL geschrieben.

    habe denn bei mir auf denn Rechner laufen gehabt und das ging auch ohne Probleme , jetzt habe ich das ganze bei meinem Provider hochgeladen.

    Hier sind mir jetzt teilweise seltsame Fehler aufgefallen .

    Hier mal ein Beispiel :

    in der html Datei steht folgendes:

    <form action="Login.php" method="post">
    
    	<p> Benutzername: 
    	<input type="text" name="benutzer" size="20"/>
    	</p>
    	<p> Password.: 
    	<input type="password" name="pass" size="20"/>
    	</p>
    
    	<input type="submit" value="Login" />
    
    	</form>
    

    in der PHP Datei das gegenstück dazu:

    <?php
    include("config.php"); // hier stehen meine Benutzerdaten der SQL Datenbank
    $i=0;
    
    // hier das Problem bei mir auf denn Rechner Log der nur ein wenn Benutzer und 
    // password richtig ist. bei meinem Provider hab ich die selbe 
    // Datebbank und Tabelle aber hier muss nur der Benutzername stimmen er logt 
    // sich auch ein wenn das Password falsch ist. 
    
    $abfrage ="SELECT Kd_nr,bn,passw,vn,nn from Kunden where bn='$benutzer' AND passw='$pass'";
    
    $res=mysql_db_query($dbname,$abfrage);
    
    $num=mysql_num_rows($res);
    
    if($num==0)
    {
    ?>
    <script type="text/javascript">
    
    <!--
    alert("Benutzername oder Password falsch");
    
    document.location.href="Login.html";
    
    //->
    </script>
    
    <?php
    exit;
    
    }
    
    else
    {
    
    $password=mysql_result($res,$i,"passw");
    $benutzername=mysql_result($res,$i,"bn");
    $vn=mysql_result($res,$i,"vn");
    $nn=mysql_result($res,$i,"nn");
    $kdnr=mysql_result($res,$i,Kd_nr);
    }
    
    ?>
    


  • Hab sogar mal folgends probiert.
    wenn ich nach der Abfrage der Datenbank folgendes Probiere.

    <?php
    if(benutzer==benutzer==benutzername && pass==pass==password)
    //wenn jetzt in benutzer der übergebene Benutzername ist bsp Max
    // dann prüft der denn mit dem Name aus der Datenbank wie schon oben
    // nehmen wir an in benutzername und password würde jetzt folgendes stehen
    // was mir die Datenbank abfrage rausgesucht hat
    // benutzername: Max password: geheim
    // so prüft er ob das mit dem übergebenen Daten stimmt und wenn es stimmt
    // würde mir Super Login erfolgreich ausgegeben
    // aber auch wenn ich irgendein password eingebe dann bekomm ich die ausgabe
    // das kann doch nicht sein?????
    {
    echo "Super Login erfolgreich";
    }
    else
    {
    ?>
    <script type="text/javascript">

    <!--
    alert("Benutzername oder Password falsch");

    document.location.href="Login.html";

    //->
    </script>

    <?php
    exit;
    }



  • aha. und welcher fehler tritt dabei jetzt auf? den konnte ich hier nicht finden 👎



  • hab denn Fehler jetzt gefunden.

    irgendwo gibt es eine variable pass also mit denn selben namen wie meine die ich versende und die enthält das password zu dem benutzer.

    hmm bei mir local ging es somit.

    wo kommt die her ? liegt die bei meinem provider eine variable names pass die das password aus der sql datenbank erhält.??

    schon komisch.

    nick



  • Irgendwie habe ich das Gefühl, ich wiederhole mich immer und immer wieder 🙄

    http://de.wikipedia.org/wiki/SQL_Injection

    Wenn das da oben wirklich Teil eines Shops ist, dann mach dich auf Klagen deiner Kunden gefasst ...


Anmelden zum Antworten