Unbekannter Fehler bei einer Registrierungs Funktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anlegen
anweisung
auftritt
ausgegeben register
benutzer
code
date
datum
email
fehler
header
karpfen
kommentar
register
set
unbekannter fehler
url
variablen ausgeben
wiederholen
zeile
-
Hallo,
Ich bekomme ein Ungekannten Fehler bei einem Anmelde Script.
Ich hab den Selbst zusammen gescriptet aber jetzt funktioniert dieser nicht mehr.
Hier ist der
<?php if(!isset($_POST['submit'])) { echo '<form action="?page=anmelden" method="post"> <table width="400px" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center"> <tr> <td bgcolor="#EAEAEA" align="center" colspan="2"> <b>Neuen Benutzer anlegen</b> </td> </tr> <tr> <td width="170" bgcolor="#EAEAEA">Benutzername</td> <td width="230" bgcolor="#FFFFFF"><input type="text" name="username" class="input"'; if($_POST['username'] != "") { echo ' value="'.$_POST['username'].'"'; } echo 'size="20"></td> </tr> <tr> <td width="170" bgcolor="#EAEAEA">eMail</td> <td width="230" bgcolor="#FFFFFF"><input type="text" name="mail" size="20" class="input"></td> </tr> <tr> <td width="170" bgcolor="#EAEAEA">Passwort</td> <td width="230" bgcolor="#FFFFFF"><input type="password" name="password" size="20" class="input"></td> </tr> <tr> <td width="170" bgcolor="#EAEAEA">Passwort wiederholen</td> <td width="230" bgcolor="#FFFFFF"><input type="password" name="password2" size="20" class="input"></td> </tr> <tr> <td bgcolor="#EAEAEA" align="center" colspan="2"> <input type="submit" name="submit" value="Benutzer anlegen" class="button"> </td> </tr> </table> </form>'; }elseif(!isset($_POST['username']) || $_POST['username'] == ""){ echo '<p align="center">Du hast den Benutzernamen vergessen!<br><br><a href="?page=anmelden">Zurück</a></p>'; }elseif(!isset($_POST['mail']) || $_POST['mail'] == ""){ echo '<p align="center">Bitte gebe eine eMail an, damit wir dir eine eMail mit den Daten schicken können.<br><br><a href="?page=anmelden">Zurück</a></p>'; }elseif(!isset($_POST['password']) || $_POST['password'] == "") { echo '<p align="center">Ein Passwort brauchen wir schon ;-)<br><br><a href="?page=anmelden">Zurück</a></p>'; }elseif($_POST['password'] != $_POST['password2']) { echo '<form action="?page=anmelden" method="post">'; echo '<p align="center">Die Passwörter sind nicht gleich, bitte überprüfe sie.<br><br>'; echo '<input type="hidden" name="username" value="'.$_POST['username'].'">'; echo '<input type="submit" name="zurueck" value="Zurück"></p>'; echo '</form>'; }else{ $query = @mysql_query("SELECT user FROM user_".$digit." WHERE user = '".$_POST['username']."'"); $result = @mysql_fetch_array($query); if($_POST['username'] == $result['user']) { echo '<p align="center">Den Benutzernamen gibt es schon in der Community!<br><br><a href="?page=anmelden">Zurück</a></p>'; die; }else{ $username = $_POST['username']; $mail = $_POST['mail']; $pass = $_POST['password']; $datum = date("j.n.Y"); if($insert = @mysql_query("INSERT INTO `user_".$digit."` SET user = '$username', pass = '$pass', mail = '$mail', regdatum = '$date'")) { $header="From $mail\n\n"; $email_betreff= "Anmeldung in unserer Community"; $kommentar= "Willkommen in unserer Community\n\nUsername: $username\nPasswort: ".$_POST['password']."\n\nWir wünschen dir noch viel Spaß in unserer Community\n\n" ; mail($mail,$email_betreff,$kommentar,$header); echo '<p align="center">Der neue Benutzer wurde erfolgreich angelegt!<br><br><a href="index.php">Zurück zur Startseite</a></p>'; }else{ echo '<p align="center">Beim Anlegen des neuen Benutzers trat leider ein Fehler auf!<br><br><a href="?page=anmelden">Zurück</a></p>'; } } } ?>
Könnt ihr mir bitte nur Erklären was Falsch ist? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ein unbekannter Fehler ist ein Fehler der sich nicht zu erkennen gibt.
Also in dem Fall wurde immer die Letzte zeile mit dem else angezeigt.
Und wenn ich diese zeile Entferne gibt es ein Parse Error in der Letzten Zeile.
Wieso weiß ich nicht.
Edit: Seit wann ist die Register Global Funktion Veraltet?
Beitrag zuletzt geändert: 7.12.2009 22:12:37 von privatecitypage -
Gibts einen Link dazu, wo man sich das mal anschauen kann?
-
http://privatecitypagetestpage.webhop.net/gast.php?page=anmelden
Das ist mein Home Server also (etwas) Lahm. -
Du musst diese Zeile überprüfen, denn dort wird der Wert false zurückgegeben:
if($insert = @mysql_query("INSERT INTO `user_".$digit."` SET user = '$username', pass = '$pass', mail = '$mail', regdatum = '$date'"))
Und deshalb dann die Else-Anweisung ausgeführt. Am besten mal alle Variablen ausgeben sowie den SQL-Query und schauen, wo da der Fehler ist. -
Mein Eig. Befehl heißt
if($insert = @mysql_query("INSERT INTO `user_".$digit."` SET user = '$username', pass = '$pass', mail = '$mail', regdatum = '$date'"))
Ist das richtig?
Hab bis jetzt nur mit SELECT/UPDATE und DELETE Gearbeitet. INSERT hab ich noch nie gemacht.
-
Ob das logisch richtig ist, keine Ahnung, deshalb sollst du ja mal die Variablen ausgeben und überprüfen ob das ein SQL-syntaktisch richtiger Befehl ist . Ich kenn doch deine Datenbankstruktur nicht. Ich weiss auch nicht, ob Register Global bei dir aktiviert oder nicht ist.
Beitrag zuletzt geändert: 7.12.2009 22:56:07 von karpfen -
Register Global ist bei mir Aktiv aber aus irgend ein Grund Veraltet.
PHP Version : 5.3.1
Apache Version 2.2.14 -
der Fehler ist:
Field 'id' doesn't have a default value
da weiß ich leider nicht genau weiter.
Vllt. hat die Spalte "id" in der Datenbank keinen gültigen wert., vllt. hilft es wenn du beschreibst was "id" bei dir in der db genau ist.
-
Problem Gefunden.
Er wusste kein Startart Wert für ID als hat er das Freigelassen und diesen Fehler Code Angezeigt,
Danke an alle.
Edit by karpfen: Damit closed!
Beitrag zuletzt geändert: 8.12.2009 19:02:15 von karpfen -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage