kostenloser Webspace werbefrei: lima-city


SQL Zeigt falsche Geburtsdatum

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Woher kommt
    $_POST['Geburtsdatum']
    ? Bastelst du das irgendwie clientseitig zusammen?

    Beitrag zuletzt geändert: 7.11.2012 11:40:43 von hackyourlife
  4. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    [
    hackyourlife schrieb:
    Woher kommt
    $_POST['Geburtsdatum']
    ? Bastelst du das irgendwie clientseitig zusammen?

    hab ich von andere seite hast du andere idee?
  5. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    tshaika schrieb:
    hab ich von andere seite hast du andere idee?
    Ich hab andere Idee… vorallem aber hast du noch andere Fehler ;-)

    1) Was macht das?
    // 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 */
    Das wird Sytaxfehler geben.

    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']
  6. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    hackyourlife schrieb:
    tshaika schrieb:
    hab ich von andere seite hast du andere idee?
    Ich hab andere Idee? vorallem aber hast du noch andere Fehler ;-)

    1) Was macht das?
    // 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 */
    Das wird Sytaxfehler geben.

    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
  7. 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?
  8. Autor dieses Themas

    tshaika

    tshaika hat kostenlosen Webspace.

    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
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!