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

FreeZeY

Lt. Junior Grade
Dabei seit
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
 

GuardianAngel

Ensign
Dabei seit
Nov. 2004
Beiträge
138
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...');
    }
 

AlbertLast

Lieutenant
Dabei seit
Juni 2002
Beiträge
715
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
 

davidbaumann

Commodore
Dabei seit
Aug. 2004
Beiträge
4.864
Ä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
 

FreeZeY

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Aug. 2004
Beiträge
398
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:

GuardianAngel

Ensign
Dabei seit
Nov. 2004
Beiträge
138
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!
 
Top