Registrierung-Script (eigenes) schickt keine Daten an die Datenbank

  • Themenstarter Themenstarter giga-cooperation
  • Beginndatum Beginndatum
G

giga-cooperation

Hi Tutorials-Community,
ich möchte gerne mal wissen, wo in meinem Script ein Fehler ist.
Dieses Script schickt keine Daten an phpMyAdmin, aber gibt es so aus, als wären die Daten an die Datenbank geschickt.

PHP:
 <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 "";
### Formular zum ausfüllen, der Daten
if ($_GET['step'] == '1') {
echo "
<FORM action='http://admin.giga-cooperation.de/register.php?step=2' method=post>
<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></TD></TR>
<TR><TD align=right>Passwort:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=password name=password></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></TD></TR>
<TR><TD align=right>Nachname:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=nachname></TD></TR>
<TR><TD align=right>E-Mailadresse</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=email></TD></TR>
</TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR><TD width=100%></TD><TD><INPUT type=submit name=submit value='Registrieren'></TD></TR>
</TBODY></TABLE>
</FORM>
";
}
### Daten werden überprüft
if ($_GET['step'] == '2') {
function ueberpruefung() {
if ($isset['benutzername']) { echo "Der Benutzername fehlt."; }
if ($isset['password']) { echo "Das Passwort fehlt."; }
if ($isset['vorname']) { echo "Der Vorname fehlt."; }
if ($isset['nachname']) { echo "Der Nachname fehlt."; }
if ($isset['email']) { echo "Die E-Mailadresse fehlt."; }
}
 
if ($ueberpruefung) {
echo "Du darfst <A style='TEXT-DECORATION:none' href='http://admin.giga-cooperation.de/register.php?step=1' target=_top>nicht weiter</A>.";
} else {
echo "Du darfst <A style='TEXT-DECORATION:none' href='http://admin.giga-cooperation.de/register.php?step=3' target=_top>weiter</A>.";
}
}
### Daten werden an Datenbank gesendet oder überprüft, ob sie schon vorhanden sind
if ($_GET['step'] == '3') {
### Verbindung zum MySQL-Server
$db = mysql_connect("localhost", "root", "");
### Daten festlegen (SELECT)
$sql = "SELECT * FROM user WHERE benutzername = '$benutzername'";
$result = mysql_db_query("admin", $sql);
### Daten festlegen (INSERT)
$sql2 = "INSERT INTO user (Id, Benutzername, Passwort, Vorname, Nachname, E-Mail) VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$result2 = mysql_db_query("admin", $sql2);
if ($result) {
echo "<A style='TEXT-DECORATION: none' href='http://admin.giga-cooperation.de/register.php?step=1' target=_top>Dein Benutzername existiert bereits schon. Suche Dir bitte einen anderen Benutzernamen aus.</A>";
} else {
if ($result2) {
echo mysql_error();
} else {
echo "<A style='TEXT-DECORATION: none' href='http://admin.giga-cooperation.de/' target=_top>Deine Daten wurden zur Datenbank geschickt.</A>";
}
}
mysql_close($db);
}
?>
</TD></TR></TBODY></TABLE>
</CENTER>
</BODY>
</HTML>
 
Hi,
function ueberpruefung() {
if ($isset['benutzername']) { echo "Der Benutzername fehlt."; }
if ($isset['password']) { echo "Das Passwort fehlt."; }
if ($isset['vorname']) { echo "Der Vorname fehlt."; }
if ($isset['nachname']) { echo "Der Nachname fehlt."; }
if ($isset['email']) { echo "Die E-Mailadresse fehlt."; }
}
hier steige ich net durch.

Was überprüfst Du da? Du überprüfst doch lediglich einen String, eine Zeichenkette. Mit isset() überprüft man, ob z.B. das Formularfeld vorhanden ist, ich kann mich jetzt auch irren.
echo "Du darfst <A style='TEXT-DECORATION:none' href='http://admin.giga-cooperation.de/register.php?step=3' target=_top>weiter</A>.";
}
Um aber letztendlich den step=3 aufrufen zu können, bzw. den Part, wo die Formularwerte in die Tabelle gespeichert werden, lädst Du die ganze Sache neu, aber ich sehe nicht, dass dort die Werte übergeben werden. Demnach kann kein eigentich kein Eintrag ankommen.

Register_globals sind aber auf on gestellt, oder ?

Ich würde das etwas anders anpacken.
Ich würde, wenn die Überprüfung in Ordnung ist, den Datensatz direkt einspeichern, vermailen bzw. verarbeiten, wie Du möchtest, ansonsten immer wieder das Formular ausgaben und keine Links.
 
PHP:
if ($_GET['step'] == '2') {
function ueberpruefung() {
if ($isset['benutzername']) { echo "Der Benutzername fehlt."; }
if ($isset['password']) { echo "Das Passwort fehlt."; }
if ($isset['vorname']) { echo "Der Vorname fehlt."; }
if ($isset['nachname']) { echo "Der Nachname fehlt."; }
if ($isset['email']) { echo "Die E-Mailadresse fehlt."; }
}

if ($ueberpruefung) {
Das ist kompletter Schwachsinn, fang nochmal vorne an mit lernen und lerne den
Syntax von PHP bevor du weiter machst.

[...]Dieses Script schickt keine Daten an phpMyAdmin[..]
Was wohl daran liegt das PhpMyAdmin keine Daten von einem Script empfängt
und du absolut keine Ahnung von nichts hast.
 
reptiler hat gesagt.:
Zusatz: Die Function ueberpruefung() hat keinen Return-Wert.
Sie echo't, das ist gleichwertig einem Return, jedoch wird das Ergebnis halt gleich ausgegeben.
Er ruft 1 die Funktion falsch auf und 2. ist die Funktion selbst schon total Müll.
 
Dass 'n echo auch returned wusste ich nicht.
Und, dass die Funktion Quatsch ist wollte ich nicht extra nochmal erwaehnen, dazu hast Du Dich ja bereits ausgelassen.
 
giga-cooperation hat gesagt.:
PHP:
 <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 "";
### Formular zum ausfüllen, der Daten
if ($_GET['step'] == '1') {
echo "
<FORM action='http://admin.giga-cooperation.de/register.php?step=2' method=post>
<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></TD></TR>
<TR><TD align=right>Passwort:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=password name=password></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></TD></TR>
<TR><TD align=right>Nachname:</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=nachname></TD></TR>
<TR><TD align=right>E-Mailadresse</TD><TD width=5>&nbsp;</TD><TD><INPUT type=text name=email></TD></TR>
</TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 border=0><TBODY>
<TR><TD width=100%></TD><TD><INPUT type=submit name=submit value='Registrieren'></TD></TR>
</TBODY></TABLE>
</FORM>
";
}
### Daten werden überprüft
if ($_GET['step'] == '2') {
function ueberpruefung() {
if ($isset['benutzername']) { echo "Der Benutzername fehlt."; }
if ($isset['password']) { echo "Das Passwort fehlt."; }
if ($isset['vorname']) { echo "Der Vorname fehlt."; }
if ($isset['nachname']) { echo "Der Nachname fehlt."; }
if ($isset['email']) { echo "Die E-Mailadresse fehlt."; }
}
 
if ($ueberpruefung) {
echo "Du darfst <A style='TEXT-DECORATION:none' href='http://admin.giga-cooperation.de/register.php?step=1' target=_top>nicht weiter</A>.";
} else {
echo "Du darfst <A style='TEXT-DECORATION:none' href='http://admin.giga-cooperation.de/register.php?step=3' target=_top>weiter</A>.";
}
}
### Daten werden an Datenbank gesendet oder überprüft, ob sie schon vorhanden sind
if ($_GET['step'] == '3') {
### Verbindung zum MySQL-Server
$db = mysql_connect("localhost", "root", "");
### Daten festlegen (SELECT)
$sql = "SELECT * FROM user WHERE benutzername = '$benutzername'";
$result = mysql_db_query("admin", $sql);
### Daten festlegen (INSERT)
$sql2 = "INSERT INTO user (Id, Benutzername, Passwort, Vorname, Nachname, E-Mail) VALUES ('', '$benutzername', '$password', '$vorname', '$nachname', '$email')";
$result2 = mysql_db_query("admin", $sql2);
if ($result) {
echo "<A style='TEXT-DECORATION: none' href='http://admin.giga-cooperation.de/register.php?step=1' target=_top>Dein Benutzername existiert bereits schon. Suche Dir bitte einen anderen Benutzernamen aus.</A>";
} else {
if ($result2) {
echo mysql_error();
} else {
echo "<A style='TEXT-DECORATION: none' href='http://admin.giga-cooperation.de/' target=_top>Deine Daten wurden zur Datenbank geschickt.</A>";
}
}
mysql_close($db);
}
?>
</TD></TR></TBODY></TABLE>
</CENTER>
</BODY>
</HTML>

Wie könnte man das in diesem Script so schreiben, damit die Daten die im Step 1 eingeben werden bis zum letzten Step (3) weitergesendet werden und dann an die Datenbank (phpMyAdmin) weitergesendet wird? Wie könnte man noch überprüfen, ob wirklich alle Felder ausgefüllt sind?

Ich hoffe Ihr könnt mir helfen.
 
zuerst mal:
if ($_GET['step'] == '2') {
function ueberpruefung() {
if (!isset['benutzername']) { echo "Der Benutzername fehlt."; }
else if (!isset['password']) { echo "Das Passwort fehlt."; }
else if (!isset['vorname']) { echo "Der Vorname fehlt."; }
else if (!isset['nachname']) { echo "Der Nachname fehlt."; }
else if (!isset['email']) { echo "Die E-Mailadresse fehlt."; }
else { dein script zum weiterleiten zur überprfung..... }}}

hoffe, dass ich nu keine fehler reingebaut hab, aber $isset ist meines wissens nach irgendwie komisch, denke, dass du !isset meinst (also wenns nicht gesetzt ist)
außerdem solltest du sagen, dass wenns DOCH gesetzt ist, die nächste abfrage stattfinden sollte und solltest als letztes else angeben, was weiter getan werden soll, also hier die weiterleitung zum nächsten forumlar ....
 
@ froddie: Heim geh'n, Deutsch lernen, wiederkommen, Netiquette lesen, hilfreiche Ratschläge posten! Deine "Verbesserung" ist sinnfrei.

@ giga:
PHP:
function ueberpruefung() {
if ($isset['benutzername']) { echo "Der Benutzername fehlt."; }
if ($isset['password']) { echo "Das Passwort fehlt."; }
if ($isset['vorname']) { echo "Der Vorname fehlt."; }
if ($isset['nachname']) { echo "Der Nachname fehlt."; }
if ($isset['email']) { echo "Die E-Mailadresse fehlt."; }
}

if ($ueberpruefung) {
Das ist falsch (!) Verdammt tu dir und uns den Gefallen und lern PHP richtig.
Wenn wir dir dein Script jetzt korrigieren kommst du in 3 Tagen mit dem
nächsten, das genauso fehlerbehaftet ist und das bringt dich nicht weiter!
 
_voodoo, maessige dich! Erstmal bist du kein Moderator, d.h. du darfst die Maßregelungen ruhig uns ueberlassen! Zum anderen ist es sehr zynisch, auf die Netiquette zu verweisen, und im gleichen Zug gegen Artikel 4 zu verstossen! Ich verwarne dich hiermit offiziell.
Achja, echo hat nichts, aber auch rein garnichts mit einem return zu tun. Mein Tipp an der Stelle: Heim gehen, PHP lernen, wiederkommen!

Weiter im Text. :)
 
Zurück