eigenes Register-Script

  • Themenstarter Themenstarter giga-cooperation
  • Beginndatum Beginndatum
G

giga-cooperation

Code:
<HTML>
<HEAD>
<TITLE>GIGA COOPERATION - ADMINISTRATOR</TITLE>
</HEAD>
<BODY bgColor=#3d3d3d topmargin=0 leftmargin=0 marginheight=0 marginwidth=0>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY><TR><TD>
<?php

echo "";

if ($_GET['step'] == '1'){
echo"
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR><TD align=right>Benutzername:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=benutzername size=20></TD></TR>
<TR><TD align=right>Passwort:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=password name=passwort size=20></TD></TR>
</TBODY></TABLE><BR>
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR><TD align=right>Vorname:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=vorname size=20></TD></TR>
<TR><TD align=right>Nachname:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=nachname size=20></TD></TR>
<TR><TD align=right>E-Mailadresse:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=email size=20></TD></TR>
</TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>
<FORM action='http://admin.giga-cooperation.de/register.php?step=2' method=post>
<TR><TD width=100%>&nbsp;</TD><TD><INPUT type=submit name=submit value='Registrieren'></TD></TR>
</FORM>
</TBODY></TABLE>
";
}
include("http://admin.giga-cooperation.de/connect.php");

if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
?>
</FORM>
</TD></TR></TBODY></TABLE>
</CENTER>
</BODY>
</HTML>
Was ist an diesem Script falsch, damit überprüft wird, ob der Benutzername schon vorhanden ist. Wie könnte man bei diesem Script noch cookies oder session erstellen?
 
PHP:
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
Also irgendwie ergibt diese Abfrage keinen Sinn... Du schaust ob die Variable $benutzername gesetzt ist (Die ja anscheinend durch eine andere Seite per Formular übergeben wird), wenn sie nicht gesetzt ist, fügst du sie in die Datenbank ein, wenn sie gesetzt ist, gibst du die Fehlermeldung raus, dass der Nick schon belegt ist... Also wird er immer ausgeben, dass der Benutzername schon belegt ist... Richtig müsste es ungefär so aussehen:
Übrigens ist dein Handling für die Funktion mysql_query falsch... Richtig ist:
mysql_query( string Anfrage, Verbindungskennung)
PHP:
[...]
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}


if($_GET['step'] == '2') {
$sql = mysql_query("SELECT * FROM user WHERE benutzername= $_POST['benutzername']");
$result = mysql_num_rows($sql);
if($result != 0) {
	echo "Der Benutzername ist schon vorhanden.";
} else {
$sql2 = mysql_query("INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')");
if($sql2) {
echo "Der Benutzername existiert jetzt.";
} else {
	echo mysql_error();
}
}

So ungefähr sollte das klappen... ist nicht getestet o. ä.
 
Ja, das weiß ich...

Aber as far as i know muss die Reihenfolge beachtet werden... Und er gibt zuerst die Verbinungskennung an und dann die Anfrage... Was soweit ich weiß falsch ist... Oder nicht?
 
Flex hat gesagt.:
PHP:
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
Also irgendwie ergibt diese Abfrage keinen Sinn... Du schaust ob die Variable $benutzername gesetzt ist (Die ja anscheinend durch eine andere Seite per Formular übergeben wird), wenn sie nicht gesetzt ist, fügst du sie in die Datenbank ein, wenn sie gesetzt ist, gibst du die Fehlermeldung raus, dass der Nick schon belegt ist... Also wird er immer ausgeben, dass der Benutzername schon belegt ist... Richtig müsste es ungefär so aussehen:
Übrigens ist dein Handling für die Funktion mysql_query falsch... Richtig ist:
mysql_query( string Anfrage, Verbindungskennung)
PHP:
[...]
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
 
 
if($_GET['step'] == '2') {
$sql = mysql_query("SELECT * FROM user WHERE benutzername= $_POST['benutzername']");
$result = mysql_num_rows($sql);
if($result != 0) {
	echo "Der Benutzername ist schon vorhanden.";
} else {
$sql2 = mysql_query("INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')");
if($sql2) {
echo "Der Benutzername existiert jetzt.";
} else {
	echo mysql_error();
}
}

So ungefähr sollte das klappen... ist nicht getestet o. ä.

Danke für den Tipp.
 
Flex hat gesagt.:
PHP:
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
Also irgendwie ergibt diese Abfrage keinen Sinn... Du schaust ob die Variable $benutzername gesetzt ist (Die ja anscheinend durch eine andere Seite per Formular übergeben wird), wenn sie nicht gesetzt ist, fügst du sie in die Datenbank ein, wenn sie gesetzt ist, gibst du die Fehlermeldung raus, dass der Nick schon belegt ist... Also wird er immer ausgeben, dass der Benutzername schon belegt ist... Richtig müsste es ungefär so aussehen:
Übrigens ist dein Handling für die Funktion mysql_query falsch... Richtig ist:
mysql_query( string Anfrage, Verbindungskennung)
PHP:
[...]
if ($_GET['step'] == '2') {
if(!$benutzername) {
$sql = "INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$mysql = mysql_query($datenbank, $sql) or die ($db_fehler2);
echo "Der Benutzername existiert jetzt.";
} else {
$sql1 = "SELECT * FROM user WHERE benutzername=$_POST[benutzername]";
$mysql1 = mysql_query($datenbank, $sql1) or die ($db_fehler2);
echo "Der Benutzername ist schon vorhanden.";
}
}
 
 
if($_GET['step'] == '2') {
$sql = mysql_query("SELECT * FROM user WHERE benutzername= $_POST['benutzername']");
$result = mysql_num_rows($sql);
if($result != 0) {
	echo "Der Benutzername ist schon vorhanden.";
} else {
$sql2 = mysql_query("INSERT INTO user ('Id', 'Benutzername', 'Password', 'Vorname', 'Nachname', 'E-Mail') VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')");
if($sql2) {
echo "Der Benutzername existiert jetzt.";
} else {
	echo mysql_error();
}
}

So ungefähr sollte das klappen... ist nicht getestet o. ä.

Danke für den Tipp. Wie könnte man das noch programmieren, damit nach dem registrieren cookies erstellt werden? Welche Bezeichnungen braucht man, damit das Script überprüft, ob alle Angaben ausgefüllt sind?
 

Neue Beiträge

Zurück