Hi zusammen.
ich erstelle nach Jahren mal weiter eine Homepage und leier hat sich sehr viel geändert
Das alte sql geht nicht mehr, also dachte ich ich steige mal auf pdo um.
Jetzt zum Problem.
Wenn ich es einzeln ändere (wie es vorher war) klappt alles. Jetzt wollte ich alles in einer datei machen und dabei kommt es zu problemen.
Ich habe die Felder :
1 name (Wird angezeigt und muss immer was stehen)
2 benutzer (Wird angezeigt und muss immer was stehen)
3 email (Wird angezeigt und muss immer was stehen)
emailwiederholen
neues pw
neues pw wiederholen
und den button Speichern mit eingabefeld des aktuellen Passworts.
Ich möchte es gerne so habe, das mann das aktuelle PW immer eingeben muss.
Die anderen Felder nur bei bedarf, bzw. die Felder 1, 2 und 3 muss immer was stehen.
Momentan ist es so, dass wenn ich den Namen ändere und auf speichern drücke geht es nicht da ich alle felder ausfüllen muss. :/
Irgendwie stehe ich momentan auf den Schlauch.
ich erstelle nach Jahren mal weiter eine Homepage und leier hat sich sehr viel geändert
Das alte sql geht nicht mehr, also dachte ich ich steige mal auf pdo um.
Jetzt zum Problem.
Wenn ich es einzeln ändere (wie es vorher war) klappt alles. Jetzt wollte ich alles in einer datei machen und dabei kommt es zu problemen.
Ich habe die Felder :
1 name (Wird angezeigt und muss immer was stehen)
2 benutzer (Wird angezeigt und muss immer was stehen)
3 email (Wird angezeigt und muss immer was stehen)
emailwiederholen
neues pw
neues pw wiederholen
und den button Speichern mit eingabefeld des aktuellen Passworts.
Ich möchte es gerne so habe, das mann das aktuelle PW immer eingeben muss.
Die anderen Felder nur bei bedarf, bzw. die Felder 1, 2 und 3 muss immer was stehen.
Momentan ist es so, dass wenn ich den Namen ändere und auf speichern drücke geht es nicht da ich alle felder ausfüllen muss. :/
Irgendwie stehe ich momentan auf den Schlauch.
SQL:
if(isset($_GET['save'])) {
$save = $_GET['save'];
if($save == 'personal_data') {
$name = trim($_POST['name']);
$benutzername = trim($_POST['benutzername']);
$email = trim($_POST['email']);
$email2 = trim($_POST['email2']);
$passwortAlt = $_POST['passwortAlt'];
$passwortNeu = trim($_POST['passwortNeu']);
$passwortNeu2 = trim($_POST['passwortNeu2']);
if($name == "" || $benutzername == "") {
$error_msg = "Bitte name- und benutzername ausfüllen.";
} else {
$statement = $pdo->prepare("UPDATE users SET name = :name, benutzername = :benutzername, updated_at=NOW() WHERE id = :userid");
$result = $statement->execute(array('name' => $name, 'benutzername'=> $benutzername, 'userid' => $user['id'] ));
}
if($email != $email2) {
$error_msg = "Die eingegebenen E-Mail-Adressen stimmten nicht überein.";
} else if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error_msg = "Bitte eine gültige E-Mail-Adresse eingeben.";
} else {
$statement = $pdo->prepare("UPDATE users SET email = :email WHERE id = :userid");
$result = $statement->execute(array('email' => $email, 'userid' => $user['id'] ));
}
if($passwortNeu != $passwortNeu2) {
$error_msg = "Die eingegebenen Passwörter stimmten nicht überein.";
} else if($passwortNeu == "") {
$error_msg = "Das Passwort darf nicht leer sein.";
} else if(!password_verify($passwortAlt, $user['passwort'])) {
$error_msg = "Bitte korrektes Passwort eingeben.";
} else {
$passwort_hash = password_hash($passwortNeu, PASSWORD_DEFAULT);
$statement = $pdo->prepare("UPDATE users SET passwort = :passwort WHERE id = :userid");
$result = $statement->execute(array('passwort' => $passwort_hash, 'userid' => $user['id'] ));
$success_msg = "Daten erfolgreich gespeichert.";
}
}
}
Zuletzt bearbeitet: