[PHP] MYSQL Abfrage Fehler

Dieses Thema im Forum "Webentwicklung" wurde erstellt von undi, 30. Oktober 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 30. Oktober 2008
    MYSQL Abfrage Fehler

    Hi,

    Folgender Code ließt aus einer Datenbank mittels einer Kundennummer ein dazugehöriges Passwort aus. Dann wird das aus der Datenbank ausgelesene Passwort mit dem Passwort welches der Benutzer in einem Formular eingegeben hat verglichen (siehe IF - Abfrage)
    Stimmt alles, so erscheint wunderbar: "Login Korrekt"
    Stimmt es allerdings nicht, so wird einfach garnichts angezeigt.
    Normalerweiße müsste "Login Falsch" angezeigt werden.
    Das tut es aber komischerweise nicht.

    Jemand von euch ne Idee, woran es liegen könnte? Für mich sieht soweit alles ok aus.

    PHP:
    <? PHP

    $db
    = mysql_connect ( "localhost" , "root" , "" );
        
    $ausgabe = mysql_db_query ( "infobit" , "SELECT passwort FROM kunden where kundennummer= $_POST [ kundennummer ] " );
        
        while(
    $result  mysql_fetch_array ( $ausgabe )) {
      
          if (
    $_POST [ passwort ]== $result [ 'passwort' ] )
        {    
        echo 
    "Login Korrekt" ;
        }
        else
        {
        echo 
    "Login Falsch" ;
        }
    }
          
    ?>
     
  2. 30. Oktober 2008
    AW: Abfrage - Fehler

    wird das pw verschlüsselt in der db gespeichert?

    wenn ja kannst du es gar nicht via $_POST[passwort] abgleichen. dann müsstest du das gepostete pw erst verschlüsseln!

    desweiteren solltest du deine db abfrage überarbeiten (tipp: mysql_real_escape_string usw.).

    eine while wird ja nur ausgeführt wenn du auch eine passendes query bekommst, sprich wenn falsche nummer hast, kommste gar nicht bis zur if

    In der DB Abfrage ... $_POST[kundennummer] <- mach es mal mit ""!
    Das Gleiche in der IF Anweisung mit dem passwort.
    PHP:
    <? PHP

    //Bissle Sicherheit

    $_POST [ "kundennummer" ] = (int)  $_POST [ "kundennummer" ]; 

    $db = mysql_connect ( "localhost" , "root" , "" );
        
    $ausgabe = mysql_db_query ( "infobit" , "SELECT passwort FROM kunden where kundennummer='" . mysql_real_escape_string ( $_POST [ 'kundennummer' ]). "'" );
        
        while(
    $result  mysql_fetch_array ( $ausgabe )) {
      
          if (
    $_POST [ 'passwort' ]== $result [ 'passwort' ] )
        {    
        echo 
    "Login Korrekt" ;
        }
        else
        {
        echo 
    "Login Falsch" ;
        }
    }
          
    ?> 

     
  3. 30. Oktober 2008
    AW: Abfrage - Fehler

    Liegt daran, dass wenn du eine falsche Kundennummer angibst die while Schleife nicht ausgeführt wird, da keine rows zurückgegeben werden. Also überprüfen wieviele Ergebnisse es gibt, PHP: mysql_num_rows - Manual oder [G]MySQL Befehl COUNT[/G] - oder sonstiges - benutzen.
     
  4. 30. Oktober 2008
    AW: Abfrage - Fehler

    Vielen Dank euch beiden, mit der Info hab ich es jetzt hinbekommen :]

    Danke pleq für die Tipps mit mehr Sicherheit, das hab ich eingebaut.

    Bw bekommt ihr natürlich für eure super Hilfe.

    closed.
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.