SQL Zeigt falsche Geburtsdatum
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
april
array
benutzen
code
datenbank
datum
dezember
element
falschen geburtsdatum
fehler
form
geburtsdatum
geburtstag
idee
jahr
mai
monat
null
tag
url
-
Ich Habe ein Problem mit SQL tag/datenbank">Datenbank bei Geburtsdatum Eintrag.
Der Datenbankt Zeigt 0000-00-00
Wo ist der Fehler
Datenbank
Geburtsdatum Date NULL
PHP
// Prüfen, ob alle Formularfelder vorhanden sind $_POST['Tag'], /* Form-Element für den Geburtstag - Tag */ $_POST['Monat'], /* Form-Element für den Geburtstag - Monat */ $_POST['Jahr'], /* Form-Element für den Geburtstag - Jahr */ // Prüft, ob der Geburtsdatum eingetragen ist if ( ! checkdate( $_POST['Monat'], $_POST['Tag'], $_POST['Jahr'] ) ) $errors[]= "Geben sie iher Geburtsdatum ein."; $sql = "INSERT INTO User (Nickname Geburtsdatum usw VALUES '".mysql_real_escape_string(trim($_POST['Geburtsdatum']))."', echo "<span style=\"font-weight:bold;\">\n". "Geburtsdatum :\n". "</span>\n"; $Monatsnamen = array(1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' ); echo " <select name=\"Tag\">\n"; echo " <option value=\"0\">Tag</option>\n"; for($i=1;$i<=31;$i++){ echo "<option value=\"".$i."\">".$i.".</option>\n"; }
Frage wo ist der Fehler
Beitrag zuletzt geändert: 7.11.2012 11:30:43 von tshaika -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Woher kommt
? Bastelst du das irgendwie clientseitig zusammen?$_POST['Geburtsdatum']
Beitrag zuletzt geändert: 7.11.2012 11:40:43 von hackyourlife -
tshaika schrieb:
Ich hab andere Idee… vorallem aber hast du noch andere Fehler
hab ich von andere seite hast du andere idee?
1) Was macht das?
Das wird Sytaxfehler geben.// Prüfen, ob alle Formularfelder vorhanden sind $_POST['Tag'], /* Form-Element für den Geburtstag - Tag */ $_POST['Monat'], /* Form-Element für den Geburtstag - Monat */ $_POST['Jahr'], /* Form-Element für den Geburtstag - Jahr */
2) Warum gibts du Fehler aus, brichst dann aber nicht ab? Also wenn der Geburtsdatum nicht stimmt gibst du Fehler aus, tragst dann aber den falschen Geburtsdatum in Datenbank ein.
Und nun ein Code-Vorschlag, der dir eventuell helfen könnte:$datum = "{$_POST['Jahr']}-{$_POST['Monat']}-{$_POST['Tag']}"; // hier bastelst du dein SQL-Query, nimmst // aber $datum statt $_POST['Geburtsdatum']
-
hackyourlife schrieb:
tshaika schrieb:
Ich hab andere Idee? vorallem aber hast du noch andere Fehler
hab ich von andere seite hast du andere idee?
1) Was macht das?
Das wird Sytaxfehler geben.// Prüfen, ob alle Formularfelder vorhanden sind $_POST['Tag'], /* Form-Element für den Geburtstag - Tag */ $_POST['Monat'], /* Form-Element für den Geburtstag - Monat */ $_POST['Jahr'], /* Form-Element für den Geburtstag - Jahr */
2) Warum gibts du Fehler aus, brichst dann aber nicht ab? Also wenn der Geburtsdatum nicht stimmt gibst du Fehler aus, tragst dann aber den falschen Geburtsdatum in Datenbank ein.
Und nun ein Code-Vorschlag, der dir eventuell helfen könnte:$datum = "{$_POST['Jahr']}-{$_POST['Monat']}-{$_POST['Tag']}"; // hier bastelst du dein SQL-Query, nimmst // aber $datum statt $_POST['Geburtsdatum']
so wie ich verstanden kommt hier nein
// Prüfen, ob alle Formularfelder vorhanden sind
if(!isset
geit aber immer noch nicht 0000-00-00 -
deine datenbank mit dem geburtstagsfeld hat welchen Datentyp?
wenn timestamp, musst du eh was anderes machen...
wenn integer, musst du eh was anderes machen
wenn string, musst du eh was anderes machen
groß/Kleinschreibung beachtet?
was liefert das checkdate? schlägts an?
und vor allem poste mal bitte die richtige sql-query, das ding funkst so nicht... da kann auch ein fehler sein, dass der insert nciht abgesetzt wird
und vor allem: geburtsdatum ergibt sich woraus? das bastelst du dir jetzt serverseitig? -
Das ist Für Registrierung wie gesagt er sendet ab aber Datendank zeigt dann 0000-00-00
ALSO
Datenbank
Name Typ Null
Geburtsdatum date Null
PHP
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error()); mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error()); session_start(); if(isset($_POST['submit']) AND $_POST['submit']=='Registrieren'){ // Fehlerarray anlegen $errors = array(); // Geburtsdatumsstring erstellen $datum = "{$_POST['Jahr']}-{$_POST['Monat']}-{$_POST['Tag']}"; // hier bastelst du dein SQL-Query, nimmst // aber $datum statt $_POST['Geburtsdatum'] // Prüfen, ob alle Formularfelder vorhanden sind if(!isset($_POST['Nickname'], $_POST['Geburtsdatum'], usw // Ein Element im Fehlerarray hinzufügen $errors[] = "Bitte benutzen Sie das Formular aus dem Registrierungsbereich"; else{ // Prüfung der einzelnen User Felder // Alle Nicknames und Emailadressen zum Vergleich aus der Datenbank holen $nicknames = array(); $emails = array(); $sql = "SELECT Nickname, Email FROM User "; $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); while($row = mysql_fetch_assoc($result)){ $nicknames[] = $row['Nickname']; $emails[] = $row['Email']; } // Prüft, ob ein Nickname eingegeben wurde $errors[]= "Benutzen Sie bitte nur alphanumerische Zeichen (Zahlen, Buchstaben und den Unterstrich)."; if ( ! checkdate( $_POST['Monat'], $_POST['Tag'], $_POST['Jahr'] ) ) $errors[]= "Geben sie iher Geburtsdatum ein."; } // Prüft, ob Fehler aufgetreten sind if(count($errors)){ echo "Ihr Account konnte nicht erstellt werden.<br>\n". "<br>\n"; foreach($errors as $error) echo $error."<br>\n"; echo "<br>\n". "Zurück zum <a href=\"".$_SERVER['PHP_SELF']."\">Registrierungsformular</a>\n"; } else{ // Daten in die Datenbanktabelle einfügen $sql = "INSERT INTO User (Name Geburtsdatum, ) VALUES '".mysql_real_escape_string(trim($_POST['Geburtsdatum']))."', ) "; mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); echo "Vielen Dank!\n<br>". "Ihr Accout wurde erfolgreich erstellt.\n<br>". "Sie können sich nun mit Ihren Daten einloggen.\n<br>". "<a href=\"login.php\">Zum Login</a>\n"; } } else { echo "<form ". " name=\"Registrierung\" ". " action=\"".$_SERVER['PHP_SELF']."\" ". " method=\"post\" ". " accept-charset=\"ISO-8859-1\">\n"; "Geburtsdatum :\n". "</span>\n"; $Monatsnamen = array(1 => 'Januar', 2 => 'Februar', 3 => 'März', 4 => 'April', 5 => 'Mai', 6 => 'Juni', 7 => 'Juli', 8 => 'August', 9 => 'September', 10 => 'Oktober', 11 => 'November', 12 => 'Dezember' ); echo " <select name=\"Tag\">\n"; echo " <option value=\"0\">Tag</option>\n"; for($i=1;$i<=31;$i++){ echo "<option value=\"".$i."\">".$i.".</option>\n"; } echo " </select>\n"; echo " <select name=\"Monat\">\n"; echo " <option value=\"0\">Monat</option>\n"; for($i=1;$i<=12;$i++){ echo "<option value=\"".$i."\">".$Monatsnamen[$i]."</option>\n"; } echo " </select>\n"; echo " <select name=\"Jahr\">\n"; echo " <option value=\"0\">Jahr</option>\n"; for($i=2006;$i>=1900;$i--){ echo "<option value=\"".$i."\">".$i."</option>\n"; } echo " </select>\n"; echo "<br>\n"; echo "<input type=\"submit\" name=\"submit\" value=\"Registrieren\">\n"; echo "<input type=\"reset\" value=\"Zurücksetzen\">\n"; echo "</form>\n"; } ?>
sorry ich habe Paar Sachen ausgeschnitten sonst ist zulang und passt nett rein aber ich denke das muss langen
edit by hackyourlife: Code-Tag richtiggestellt
Beitrag zuletzt geändert: 7.11.2012 14:51:32 von hackyourlife -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage