Файл: app/user/change_password.php
Строк: 11
<?php
if (!$user->isAuth()) {
redirect('/');
exit;
}
$form = [
'value' => [
'old_password' => isset($_POST['old_password']) ? trim($_POST['old_password']) : null,
'password' => isset($_POST['password']) ? trim($_POST['password']) : null
],
'error' => [],
];
if (isset($_POST['submit'])) {
if (empty($form['value']['old_password'])) {
$form['error']['old_password'] = 'Необходимо ввести текущий пароль';
} elseif (@count($form['error']['email']) == 0) {
if (!password_verify($form['value']['old_password'], $user->get()->password)) {
$form['error']['old_password'] = 'Пароль неверный';
}
}
if (empty($form['value']['password'])) {
$form['error']['password'] = 'Необходимо ввести новый пароль';
} elseif (mb_strlen($form['value']['password']) < 8) {
$form['error']['password'] = 'Длина пароля не может быть меньше 8 символов';
}
if (count($form['error']) == 0) {
$change = $db->prepare('UPDATE `users` SET `password` = ? WHERE `user_id` = ?');
$change -> execute([password_hash($form['value']['password'], PASSWORD_DEFAULT),$user->get()->user_id]);
Notif :: message('Пароль успешно изменен','/change_password');
exit;
}
}
echo $template->render('user.change_password', [
'form' => $form,
]);