PHP login script finde kein fehler???

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Epidrome, 15. April 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 15. April 2007
    Hallo,
    habe folgende Script den ich immer benutze:

    Code:
    .......
    $sql = "SELECT ". 
     "userid, nick, name, vorname ". 
     "FROM ". 
     "usert ". 
     "WHERE ". 
     "(nick like '".$_REQUEST["name"]."') AND ". 
     "(passwort = '".md5 ($_REQUEST["pwd"])."')"; 
    $result = mysql_query ($sql); 
    
    if (mysql_num_rows ($result) > 0) 
    { 
     // Benutzerdaten in ein Array auslesen. 
     $data = mysql_fetch_array ($result); 
    
     // Sessionvariablen erstellen und registrieren 
     $_SESSION["user_id"] = $data["userid"]; 
     $_SESSION["user_nickname"] = $data["nick"]; 
     $_SESSION["user_nachname"] = $data["name"]; 
     $_SESSION["user_vorname"] = $data["vorname"]; 
    
     header ("Location: intern.php"); 
    } 
    else 
    { 
     header ("Location: index.php?fehler=1");
    } 
    ...
    
    Das hat bis jetzt immer funktioniert. Habe das wo anderes eingebaut und bei der if Abfrgae geht er immer nach:
    header ("Location: index.php?fehler=1");

    Was ist falsch oder woran liegt das?
     
  2. 15. April 2007
    AW: PHP login script finde kein fehler???

    was hast du denn da für einen code fabriziert?
    PHP:
    $sql  "SELECT 
        userid, nick, name, vorname
      FROM 
        usert
      WHERE
        nick = '"
    . mysql_real_escape_string ( $_REQUEST [ 'name' ]). "' AND
        passwort = '"
    . md5  ( $_REQUEST [ 'pwd' ]). "'"
    $result  mysql_query  ( $sql );
    ausserdem solltest du dich bei deinen $_REQUEST variabeln evtl. für $_GET oder besser $_POST entscheiden
    könnte helfen
     
  3. 15. April 2007
    AW: PHP login script finde kein fehler???

    Danke für schnelle Antwort werde es sofort testen.
    Habe Login Script aus dem Internet. Hat auch bis jetzt super funktioniert.
    ####################################################
    Habe es getestet funktioniert nicht.
    Der geht immer noch an:
    header ("Location: index.php?fehler=1");
     
  4. 15. April 2007
    AW: PHP login script finde kein fehler???

    ??
    1) Was macht der mysql_fetch_assoc() da drin ? Völliger schwachsinn.
    DU solltest dort lieber ne Funktion zum escapen der Parameter angeben. addslashes() zum beispiel.
    Dann würde ich mal auf mögliche fehler mit mysql_error() testen, vielleicht hast du nen falschen Benutzernamen oder ein nicht vorhandenes Feld angegeben.
     
  5. 15. April 2007
    AW: PHP login script finde kein fehler???

    Wenn das stimmt, fress ich nen Besen.

    Ausserdem ist es ziemlich ungeschickt, was du hier mit REQUEST versuchst, nimm lieber entweder POST oder GET

    Edith meint: Das mit den Requests hat ja schon jemand gepostet
     
  6. 15. April 2007
    AW: PHP login script finde kein fehler???

    Schaut euch das mal Bitte an:
    [PHP/mySQL] Login-System mit Sessions @ tutorials.de: Tutorial, Anleitung & Hilfe
    Von da habe ich das.
     
  7. 15. April 2007
    AW: PHP login script finde kein fehler???

    Jetzt fällt mir auf, dass der Code so schon stimmt, denn er hat SELECT etc mit einem Punk verkettet.
     
  8. 15. April 2007
    AW: PHP login script finde kein fehler???

    Es ist nicht falsch das $_REQUEST Array zu nehmen, es kommt auf den Programmierer an ob er richtig damit umgeht oder nicht!!!!!!!

    Der Code sieht eigentlich nur murksig aus, ist aber sonst ganz "ok"....

    Du hast es woanders eingebaut? Werden da überhaupt die richtigen Dinge ins Request-Array geschrieben?

    Versuch es aber trotzdem so
    PHP:

    $rResult  mysql_query ( "SELECT userid, 
                                   name, 
                                   nick, 
                                   vorname
                            FROM   usert
                            WHERE  md5(nick) = md5(
    { $_REQUEST [ 'name' ]} )
                            LIMIT  1"
    ) OR die( 'Datenbankfehler beim Login.' );

    header ( 'HTTP/1.1 307 Moved temporarily' ); //Einhaltung von Standards. Sollte immer benutzt werden!


    if ( mysql_num_rows ( $rResult )) {
        
    $aData  mysql_fetch_assoc ( $rResult ); //mysql_fetch_array() erzeugt Overhead!
        
        //Passwort sollte als md5 Hash gespeichert sein
        
    if ( $aData [ 'passwort' ] ===  md5 ( $_REQUEST [ 'pwd' ])) { //Kontrolle ob das Passwort korrekt ist
            //Ja der User ist vorhanden und wird in der Session gespeichert
            
    $_SESSION [ "user_id" ]       =  $data [ "userid" ];
            
    $_SESSION [ "user_nickname" ] =  $data [ "nick" ];
            
    $_SESSION [ "user_nachname" ] =  $data [ "name" ];
            
    $_SESSION [ "user_vorname" ]  =  $data [ "vorname" ];
            
             
    header  ( "Location: intern.php" ); 
        }
    //Ende - Kontrolle ob das Passwort korrekt ist
    } else { //nein der User ist nicht vorhanden
        
    header  ( "Location: index.php?fehler=1" );
    }
    //Ende - Kontrolle ob solch ein User vorhanden ist
    EDIT: naja obwohl ist doch schon einiges falsch und/oder unnötig. Das Like zum Beispiel in der Where- Klausel, oder die Benutzung des Verkettungoperators. Häng dich lieber mal selber rein als dich auf solche unsauberen vermurksten Dinge zu verlassen.
     
  9. 15. April 2007
    AW: PHP login script finde kein fehler???

    Alles klar,
    Danke für dir Infos.
    Bewertungen sind raus.
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.