Hallo Forum, ich habe einen weiteren Fehler wo ich nicht weiter komme.
Ich habe ein "Formular" wo der eingellogte Benutzer Profil anpassungen durchführen kann.
Nun gibt es dabei 2 Probleme.
1. Ich möchte nicht jedesmal alles Updaten sondern nur geänderte Werte.
2. Funktioniert etwas beim Updaten der Werte nicht, aber ich finde den Fehler nicht, ich vermute es liegt beim letzten
Auf jedenfall habe ich euch hier mal den Code mit beigepackt:
Ich freue mich wie immer über schnelle und freundliche Hilfe.
Ich habe ein "Formular" wo der eingellogte Benutzer Profil anpassungen durchführen kann.
Nun gibt es dabei 2 Probleme.
1. Ich möchte nicht jedesmal alles Updaten sondern nur geänderte Werte.
2. Funktioniert etwas beim Updaten der Werte nicht, aber ich finde den Fehler nicht, ich vermute es liegt beim letzten
$sql = "Update...
Auf jedenfall habe ich euch hier mal den Code mit beigepackt:
PHP:
<?php
session_start();
if(isset($_POST['settings-submit'])){
require 'dbh.inc.php';
$username = $_POST['uid'];
$email = $_POST['mail'];
$password = $_POST['pwd'];
$confirmpassword = $_POST['cpwd'];
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../settings.php?error=invalidmail");
exit();
}
else if(!preg_match("/^[\w\- ]*$/", $username)) {
header("Location: ../settings.php?error=invalidusername");
exit();
}
else if($password !== $confirmpassword){
header("Location: ../settings.php?error=passwordcheck");
exit();
}
else {
$sql = "SELECT * FROM users WHERE id='" . $_SESSION['id'] . "'";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../settings.php?error=sqlerror1");
exit();
}
else {
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if($resultCheck > 0){
header("Location: ../settings.php?error=usertaken");
exit();
}
else {
$sql = "UPDATE users SET (uid, email, pwd) VALUES (?, ?, ?) WHERE id='" . $_SESSION['id'] . "'";
$stmt = mysqli_stmt_init($conn);
if(!mysqli_stmt_prepare($stmt, $sql)){
header("Location: ../settings.php?error=sqlerror2");
exit();
}
else {
$hashedPwd = password_hash($password, PASSWORD_DEFAULT);
mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd);
mysqli_stmt_execute($stmt);
header("Location: logout.inc.php?settings=success");
exit();
}
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
else {
header("Location: ../settings.php");
exit();
}
Ich freue mich wie immer über schnelle und freundliche Hilfe.