JND3004 Geschrieben 8. August 2012 Teilen Geschrieben 8. August 2012 hallo leute, ich habe ein problem mit der datenbank etc. und zwar; wenn man alle nötigen sachen eingetragen hat und es abschickt, meint er das dass formular nicht vollständig wäre. hier mal der inhalt der logik <?php if(!isset($_POST['submit'])) return; if(!isset($_POST['vorname']) || !isset($_POST['nachname']) || !isset($_POST['email']) || !isset($_POST['passwort']) || !isset($_POST['geschlecht']) || !isset($_POST['geburtstag']) || empty($_POST['vorname']) || empty($_POST['nachname']) || empty($_POST['email']) || empty($_POST['passwort']) || empty($_POST['geschlecht']) || empty($_POST['geburtstag'])) { $error_msg = "Das Formular wurde nicht vollständig ausgefüllt."; return; } //VORNAME if(strlen($_POST['vorname']) < 3) { $error_msg = "Der Vornahme ist zu kurz."; return; } $_POST['vorname'] = trim($_POST['vorname']); //NACHNAME if(strlen($_POST['nachname']) < 3) { $error_msg = "Der Nachname ist zu kurz."; return; } $_POST['nachname'] = trim($_POST['nachname']); // EMAIL if($_POST['email'][0] !== $_POST['email'][1]) { $error_msg = "Die E-Mail-Adressen stimmen nicht überein."; return; } // PASSWORT if($_POST['pass'][0] !== $_POST['pass'][1]) { $error_msg = "Die Passwörter stimmen nicht überein."; return; } if(strlen($_POST['pass'][0]) > 30) { $error_msg = "Das Passwort ist zu lang."; return; } if(strlen($_POST['pass'][0]) < 8) { $error_msg = "Das Passwort ist zu kurz."; return; } //GESCHLECHT if(strlen($_POST['geschlecht']) < 1) { $error_msg = "Die Zeichen vom Geschlecht sind zu kurz."; return; } //GEBURTSTAG if(strlen($_POST['geburtstag']) < 1) { $error_msg = "Die Zeichen vom Geburtstag sind zu kurz."; return; } if(!filter_var($_POST['email'][0], FILTER_VALIDATE_EMAIL)) { $error_msg = "Die E-Mail-Adresse ist ungültig."; return; } $user_ip = ip2long ($_SERVER['REMOTE_ADDR']); $sql = ' INSERT INTO user (Vorname, Nachname, Email, Password, Geschlecht, Geburtstag, IP, date) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())'; $stmt = $db->prepare($sql); $pass = hash('sha256', $_POST['password'][0].$salt); $email = $_POST['email'][0]; $stmt->bind_param('sssi', $_POST['vorname'], $password, $email, $user_ip); $stmt->close(); $success_msg = "Das Benutzerkonto für den Namen <b>".htmlspecialchars($_POST['vorname + nachname'])."</b> wurde erfolgreich angelegt"; ?> ich hoffe ihr könnt mir weiter helfen, ich finde einfach kein lösung. falls ihr mehr daten braucht sagt bitte bescheid Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 Dein Feld für das Passwort ist $_POST["pass"][0] nicht $_POST["passwort"] Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 9. August 2012 Autor Teilen Geschrieben 9. August 2012 jzt habe ich es so verändert // PASSWORT if($_POST['passwort'][0] !== $_POST['passwort'][1]) { $error_msg = "Die Passwörter stimmen nicht überein."; return; } if(strlen($_POST['passwort'][0]) > 30) { $error_msg = "Das Passwort ist zu lang."; return; } if(strlen($_POST['passwort'][0]) < 8) { $error_msg = "Das Passwort ist zu kurz."; return; } aber den fehler meint er trotzdem noch Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 9. August 2012 Teilen Geschrieben 9. August 2012 nicht ganz, ich habe mich auf das If bezogen was oben ist, mit den ganzen isset und empty Bedingungen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 9. August 2012 Autor Teilen Geschrieben 9. August 2012 so, hab gemacht. schätze soweit richtig, nur bloß... Fatal error: Call to a member function bind_param() on a non-object in /data/multiserv/users/703938/projects/2182901/www/register/registration_logic.php on line 87 zeile 87: $stmt->bind_param('sssi', $_POST['vorname'], $pass, $email, $user_ip); Vorheriger Post um 03:22 Post hinzugefügt um 03:39 so, hab jzt nochmal rumprobiert. jzt zeigt er keine fehler an und meint das er dass konto angelegt hätte. aber dies hatte er garnicht gemacht. ich weis aber noch nicht wieso, vl finde ich es noch heraus Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Ocame Geschrieben 10. August 2012 Teilen Geschrieben 10. August 2012 Sind die Zugangsdaten der DB noch korrekt? denn dein $stmt wird nicht initialisiert. und es ist gerade nicht ersichtlich woran es liegen kann. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
JND3004 Geschrieben 10. August 2012 Autor Teilen Geschrieben 10. August 2012 hier nochmal meine aktuellste lage da ich schon was gemacht hab. es funktioniert soweit alles, er zeigt mir auch an das er es angelegt hätte, nur wenn ich dann in der db nachschaue wurde dort nichts eingetragen. und hier nochmal meine aktuelle registration_logic <?php if(!isset($_POST['submit'])) return; if(!isset($_POST['vorname']) || !isset($_POST['nachname']) || !isset($_POST['email']) || !isset($_POST['pass'][0]) || !isset($_POST['geschlecht']) || !isset($_POST['geburtstag']) || empty($_POST['vorname']) || empty($_POST['nachname']) || empty($_POST['email']) || empty($_POST['pass'][0]) || empty($_POST['geschlecht']) || empty($_POST['geburtstag'])) { $error_msg = "Das Formular wurde nicht vollständig ausgefüllt."; return; } //VORNAME if(strlen($_POST['vorname']) < 3) { $error_msg = "Der Vornahme ist zu kurz."; return; } $_POST['vorname'] = trim($_POST['vorname']); //NACHNAME if(strlen($_POST['nachname']) < 3) { $error_msg = "Der Nachname ist zu kurz."; return; } $_POST['nachname'] = trim($_POST['nachname']); // EMAIL if($_POST['email'][0] !== $_POST['email'][1]) { $error_msg = "Die E-Mail-Adressen stimmen nicht überein."; return; } // PASSWORT if($_POST['pass'][0] !== $_POST['pass'][1]) { $error_msg = "Die Passwörter stimmen nicht überein."; return; } if(strlen($_POST['pass'][0]) > 30) { $error_msg = "Das Passwort ist zu lang."; return; } if(strlen($_POST['pass'][0]) < 8) { $error_msg = "Das Passwort ist zu kurz."; return; } //GESCHLECHT if(strlen($_POST['geschlecht']) < 1) { $error_msg = "Die Zeichen vom Geschlecht sind zu kurz."; return; } //GEBURTSTAG if(strlen($_POST['geburtstag']) < 1) { $error_msg = "Die Zeichen vom Geburtstag sind zu kurz."; return; } if(!filter_var($_POST['email'][0], FILTER_VALIDATE_EMAIL)) { $error_msg = "Die E-Mail-Adresse ist ungültig."; return; } $user_ip = ip2long ($_SERVER['REMOTE_ADDR']); $sql = ' INSERT INTO user (vorname, nachname, email, passwort, geschlecht, geburtstag, ip, date) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())'; $stmt = $db->prepare($sql); $pass = hash('sha256', $_POST['pass'][1].$salt); $email = $_POST['email'][0]; $stmt->bind_param('ssssssi', $_POST['vorname'], $nachname, $email, $pass, $geschlecht, $geburtstag, $user_ip); $stmt->close(); $success_msg = "Das Benutzerkonto für den Namen <b>".htmlspecialchars($_POST['vorname'])." ".htmlspecialchars($_POST['nachname'])."</b> wurde erfolgreich angelegt."; ?> Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.
Wende dich an einen Admin, wenn du in diesem Thema etwas posten möchtest.