Compare commits

..

No commits in common. "2c044b249883bade5277414fff44a21b9e536098" and "449dd10302a27a690b127a60b54de9793b53c22f" have entirely different histories.

2 changed files with 21 additions and 34 deletions

View File

@ -26,8 +26,8 @@ class UserController{
]; ];
private $changeUserLabels = [ private $changeUserLabels = [
'vorname' => 'Vorname*', 'name' => 'Vorname*',
'name' => 'Nachname*', 'lastname' => 'Nachname*',
'email' => 'E-Mail*', 'email' => 'E-Mail*',
'password' => 'Passwort*', 'password' => 'Passwort*',
]; ];
@ -251,19 +251,19 @@ class UserController{
} }
$validData = [ $validData = [
'vorname' => $currentUser["vorname"],
'name' => $currentUser["name"], 'name' => $currentUser["name"],
'vorname' => $currentUser["vorname"],
'email' => $currentUser["email"], 'email' => $currentUser["email"],
]; ];
$this->view->setVars([ $this->view->setVars([
'changeUserLabels' => $this->changeUserLabels, 'labels' => $this->changeUserLabels,
'validData' => $validData, 'validData' => $validData,
'errors' => $this->errors, 'errors' => $this->errors,
'message' => $this->message ?? null,
]); ]);
//$this->view->render('User/showUserChangeAccountSettings'); $this->view->render('User/showUserChangeAccountSettings');
return;
} }
public function updateAccountData() public function updateAccountData()
@ -300,29 +300,21 @@ class UserController{
$this->errors['password'] = 'Passwort muss mindestens 6 Zeichen haben.'; $this->errors['password'] = 'Passwort muss mindestens 6 Zeichen haben.';
} }
if (count($this->errors) > 0) { if (count($this->errors) > 0) {
$this->view->setVars([ $this->view->setVars([
'labels' => $this->changeUserLabels, 'labels' => $this->changeUserLabels,
'validData' => $submitted, 'validData' => $submitted,
'errors' => $this->errors, 'errors' => $this->errors,
]); ]);
return; return $this->showUserChangeAccountSettings();
$this->view->render('User/showUserChangeAccountSettings');
} }
$updateData = []; $updateData = [];
if ($submitted['name'] !== $currentUser['firstname']) { foreach (['name','lastname','email'] as $field) {
$updateData['firstname'] = $submitted['name']; // PHP name = DB firstname if ($submitted[$field] !== $currentUser[$field]) {
$updateData[$field] = $submitted[$field];
} }
if ($submitted['lastname'] !== $currentUser['name']) {
$updateData['name'] = $submitted['lastname']; // PHP lastname = DB name
} }
if ($submitted['email'] !== $currentUser['email']) {
$updateData['email'] = $submitted['email'];
}
if ($submitted['password'] !== '') { if ($submitted['password'] !== '') {
$salt = bin2hex(random_bytes(16)); $salt = bin2hex(random_bytes(16));
$hash = hash('sha256', $submitted['password'] . $salt); $hash = hash('sha256', $submitted['password'] . $salt);
@ -332,27 +324,22 @@ class UserController{
if (empty($updateData)) { if (empty($updateData)) {
$this->message = 'Keine Änderungen festgestellt.'; $this->message = 'Keine Änderungen festgestellt.';
$this->view->render('User/showUserChangeAccountSettings'); return $this->showUserChangeAccountSettings();
return;
} }
$ok = $this->db->updateUserData($userId, $updateData); $ok = $this->db->updateUserData($userId, $updateData);
if ($ok) { if ($ok) {
// SessionWerte aktualisieren
$_SESSION['vorname'] = $updateData['name'] ?? $_SESSION['vorname']; $_SESSION['vorname'] = $updateData['name'] ?? $_SESSION['vorname'];
$_SESSION['name'] = $updateData['lastname'] ?? $_SESSION['name']; $_SESSION['name'] = $updateData['lastname'] ?? $_SESSION['name'];
$_SESSION['email'] = $updateData['email'] ?? $_SESSION['email']; $_SESSION['email'] = $updateData['email'] ?? $_SESSION['email'];
$this->message = 'Änderungen erfolgreich gespeichert.'; $this->message = 'Änderungen erfolgreich gespeichert.';
header("Location: index.php?controller=user&do=showUserAccountPage");
exit();
} else { } else {
$this->errors['general'] = 'Beim Speichern ist ein Fehler aufgetreten.'; $this->errors['general'] = 'Beim Speichern ist ein Fehler aufgetreten.';
return;
} }
$this->view->render('User/showUserAccountPage'); return $this->showUserChangeAccountSettings();
return;
} }

View File

@ -14,9 +14,9 @@ include dirname(__DIR__).'/header.phtml';
<?php if ($key === 'password'): ?> <?php if ($key === 'password'): ?>
<input type="password" name="<?= $key ?>" id="reg_<?= $key ?>"> <input type="password" name="<?= $key ?>" id="reg_<?= $key ?>">
<?php elseif($key === 'email'): ?> <?php elseif($key === 'email'): ?>
<input type="email" name="<?= $key ?>" id="reg_<?= $key ?>" value="<?= htmlspecialchars($validData[$key] ?? '') ?>"> <input type="email" name="<?= $key ?>" id="reg_<?= $key ?>">
<?php else: ?> <?php else: ?>
<input type="text" name="<?= $key ?>" id="reg_<?= $key ?>" value="<?= htmlspecialchars($validData[$key] ?? $_SESSION['vorname']) ?>"> <input type="text" name="<?= $key ?>" id="reg_<?= $key ?>" value="<?= htmlspecialchars($validData[$key] ?? '') ?>">
<?php endif; ?> <?php endif; ?>
<?php if (!empty($errors[$key])): ?> <?php if (!empty($errors[$key])): ?>