[PHP] Prüfen, ob User schon registriert ist

FreeZeY

Lt. Junior Grade
Registriert
Aug. 2004
Beiträge
398
Hallo zusammen!

Ich wage mich grad an ein Login/Registrierenscript ran.
Jetzt habe ich die Überprüfung, ob der Username schon registriert ist folgendermaßen gelöst (bzw. versucht zu lösen):

PHP:
$sqlcheck = "select lname from user where lname = ".$lname;
$sqlanfr = @mysql_query($sqlcheck) or die(mysql_error());
    
	if (mysql_num_rows($sqlanfr) == 0) {
        echo "Gibts nicht.. weiter!";  //<-Debug!
    }else{
		die('Der gew&uuml;nschte Loginname wird bereits von einem anderen Benutzer verwendet. Bitte versuche einen anderen Namen zu w&auml;hlen...');
	}

Aber der registriert einfach mal drauf los..:(

Vielleicht könntet ihr mal durchschauen. Ich bin kurz vorm Verzweifeln ;)

lg FreeZeY
 
AW: [PHP] Prüfen, ob User schon registriert ist...

so mach ich es bei mir:

PHP:
  // DB Abfrage ob User existiert und Logindaten richtig sind
  $result = mysql_query("SELECT name, password FROM user WHERE name = '$login_input_username' AND password = '$login_input_userpassword'");
  $result_count = mysql_num_rows($result);

  // Prüfen ob es nur 1 passenden User gibt
  if($result_count == 1)
  {

     //was machen

  }
  else
  {

     //nix machen

  }

bei dir müsste also stehen:

PHP:
$sqlcheck = "SELECT lname FROM user WHERE lname = '$lname'";
$sqlanfr = @mysql_query($sqlcheck) or die(mysql_error());
    
    if (mysql_num_rows($sqlanfr) == 0) {
        echo "Gibts nicht.. weiter!";  //<-Debug!
    }else{
        die('Der gew&uuml;nschte Loginname wird bereits von einem anderen Benutzer verwendet. Bitte versuche einen anderen Namen zu w&auml;hlen...');
    }
 
AW: [PHP] Prüfen, ob User schon registriert ist...

PHP:
$sqlcheck = 'select lname from user where lname = "'.$lname.'" ;';
$sqlanfr = @mysql_query($sqlcheck) or die(mysql_error());
    
    if (mysql_num_rows($sqlanfr) == 0) {
        echo "Gibts nicht.. weiter!";  //<-Debug!
    }else{
        die('Der gew&uuml;nschte Loginname wird bereits von einem anderen Benutzer verwendet. Bitte versuche einen anderen Namen zu w&auml;hlen...');
    }
so sollte es funtzen denke ich O.o
 
Ähh bevor du weitermachst solltest du eines bedenken:
Ich gehe mal einfach davon aus, dass $lname vom User übergeben wird.

Hast du schonmal gedacht dass bei deinem Beispiel eine SQL-Injection ziemlich einfach wäre?

MfG,
David
 
AW: [PHP] Prüfen, ob User schon registriert ist...

Vielen Dank für die schnellen Antworten!
Ich habe das erste mal ausprobiert, und es funktioniert wunderbar =)

Danke! muss man also immer ein " vorranstellen (und nachstellen)?

lg FreZeY

EDIT: Was ist eine SQL-Injection? Bin noch nicht so fit in PHP und MySQL..
EDIT2: Hab mich selbst mal schlau gemacht. Habe dein Problem verstanden.
Das Script sieht jetzt folgendermaßen aus:
PHP:
$sqlcheck = 'select lname from user where lname = "'.mysql_real_escape_string($lname).'" ;';
$sqlanfr = @mysql_query($sqlcheck) or die(mysql_error());
    
    if (mysql_num_rows($sqlanfr) == 0) {
        echo "Gibts nicht.. weiter!";  //<-Debug!
    }else{
        die('Der gew&uuml;nschte Loginname wird bereits von einem anderen Benutzer verwendet. Bitte versuche einen anderen Namen zu w&auml;hlen...');
    }
 
Zuletzt bearbeitet:
Damit ist gemeint, dass durch eingabe von PHP Code man sachen ausführen kann, die du nicht möchtest, wie z.B. Passwörter in MySql auslesen!

Alle Eingaben die von Formularen oder der Adresszeile kommen, sollten gefiltert und sofern Code drin steht vernichtet bzw unschädlich gemacht werden!
 
Zurück
Oben