Hallo,
ich habe an einem Registrationsscript gebastelt, zum Teil aus dem Internet (Von einem guten Tutorial entnommen), jedoch ist das von 2009.
Jetzt stehe ich vor einem Problem. Wenn man nämlich auf die Seite kommt, wo man sich registrieren soll, kommt sofort die Meldung "Erfolgreich registriert", obwohl man noch garnichts eingegeben hat geschweige denn irgendwo auf Abschicken geklickt hat. Es wird also ein namenloser Benutzer ohne Passwort erstellt - im Prinzip Luft.
In der Datenbank ist er jedoch vorhanden, aber halt ohne Namen und ohne Passwort.
Hier das Originalscript:
Alles anzeigen
Hier das von mir abgeänderte Script:
Alles anzeigen
Ich sehe bei meinem abgeänderten Script jetzt keinerlei Fehler, aber ich bin auch noch nicht so erfahren was PHP betrifft.
Mein Anliegen ist es, ob jemand mir eventuell erklären könnte wie es richtig muss, damit es klappt, ohne dass gleich ein Text ausgegeben wird, wenn man auf die Seite geht bzw. ein namenloser Benutzer registriert wird.
MfG
icqgamer
ich habe an einem Registrationsscript gebastelt, zum Teil aus dem Internet (Von einem guten Tutorial entnommen), jedoch ist das von 2009.
Jetzt stehe ich vor einem Problem. Wenn man nämlich auf die Seite kommt, wo man sich registrieren soll, kommt sofort die Meldung "Erfolgreich registriert", obwohl man noch garnichts eingegeben hat geschweige denn irgendwo auf Abschicken geklickt hat. Es wird also ein namenloser Benutzer ohne Passwort erstellt - im Prinzip Luft.
In der Datenbank ist er jedoch vorhanden, aber halt ohne Namen und ohne Passwort.
Hier das Originalscript:
PHP-Quellcode
- <?php
- // PHP-Code Beginn
- require_once('db_config.php');
- // Die Datenbankverbindungsdaten einbinden, damit die Funktion "mysql_connect" funktioniert
- mysql_connect($host, $user, $pass);
- // Öffnet eine Verbindung zu dem MySql-Server
- mysql_select_db($dbase);
- // Wählt die Datenbank $dbase aus
- $Benutzername = mysql_real_escape_string($HTTP_GET_VARS['benutzername']);
- // In der Variable steht der String der in der Url nach "benutzername=" übermittelt wurde
- $Passwort = md5(mysql_real_escape_string($HTTP_GET_VARS['passwort']));
- // In der Variable steht der String der in der Url nach "passwort=" übermittelt wurde
- // md5() verschüsselt den String nun
- if ($Benutzername != "" || $Passwort != "")
- // ... wenn $Benutzername oder (||) $Passwort ungleich (!=) leer ("") ist
- {
- $result_select = mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" . $Benutzername . "'");
- // Sendet die Anfrage an die MySql-DB: "Wähle alle Daten aus der Tabelle User_Daten wo der Benutzername gleich $Benutzername ist"
- // !!! Achtung !!! - Habt ihr vorher den Namen der Tabelle verändert müsst ihr logischerweise auch den neuen Namen verwenden
- $row = mysql_fetch_row($result_select);
- // mysql_fetch_row($result) gibt ein Array zurück mit alles Daten aus der Spalte in der der Benutzername gleich $Benutzername ist
- if (!$row)
- // ... wenn der Benutzername nicht gefunden wurde - "!$row" bedeutet mysql_fetch_row($result_select) lieferte kein Ergebnis
- {
- $result_insert = mysql_query("INSERT INTO User_Daten (`Benutzername`, `Passwort`) VALUES ('$Benutzername', '$Passwort')");
- // Sendet die Anfrage an die MySql-DB: "Füge in die Tabelle User_Daten, in die Spaltem Benutzername und Passwort, die Variablen $Benutzername und $Passwort ein"
- // !!! Achtung !!! - Habt ihr vorher den Namen der Tabelle verändert müsst ihr logischerweise auch den neuen Namen verwenden
- if ($result_insert)
- // ... wenn Einfügen erfolgreich, dann ...
- {
- echo 1;
- // ... eine 1 ausgeben
- exit;
- }
- else
- // ... sonst Einfügen war nicht erfolgreich, dann ...
- {
- echo 0;
- // ... eine 0 ausgeben
- exit;
- }
- }
- else
- // ... sonst Benutzername wurde gefunden -> existiert also bereits in der Datenbank
- {
- echo 2;
- // ... eine 2 ausgeben
- exit;
- }
- }
- else
- // ... sonst $Benutzername oder $Passwort waren leer (""), dann ...
- {
- echo 3;
- // ... eine 3 ausgeben
- exit;
- }
- ?>
Hier das von mir abgeänderte Script:
PHP-Quellcode
- <?php
- require_once('db_config.php');
- echo '<form action="" method="post">';
- echo '<p>Benutzername: <input name="benutzername"></p>';
- echo '<p>Passwort: <input type="password" name="passwort"></p>';
- echo '<p><input type="submit" name="submit" value="Abschicken"></p>';
- echo '</form>';
- mysql_connect($host, $user, $pass);
- mysql_select_db($dbase);
- $Benutzername = mysql_real_escape_string($_POST['benutzername']);
- $Passwort = md5(mysql_real_escape_string($_POST['passwort']));
- if ($Benutzername !="" || $Passwort !="")
- {
- $result_select = mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" . $Benutzername . "'");
- $row = mysql_fetch_row($result_select);
- if (!$row)
- {
- $result_insert = mysql_query("INSERT INTO User_Daten (`Benutzername`, `Passwort`) VALUES ('$Benutzername', '$Passwort')");
- if ($result_insert)
- {
- echo 'Registration erfolgreich';
- exit;
- }
- else
- {
- echo 'Registration fehlgeschlagen';
- exit;
- }
- }
- else
- {
- echo 'Benutzername exestiert bereits';
- exit;
- }
- }
- else
- {
- echo 'Bitte gebe einen Benutzernamen und ein Passwort ein';
- exit;
- }
- ?>
Ich sehe bei meinem abgeänderten Script jetzt keinerlei Fehler, aber ich bin auch noch nicht so erfahren was PHP betrifft.
Mein Anliegen ist es, ob jemand mir eventuell erklären könnte wie es richtig muss, damit es klappt, ohne dass gleich ein Text ausgegeben wird, wenn man auf die Seite geht bzw. ein namenloser Benutzer registriert wird.
MfG
icqgamer