Файл: wenr.online/app/user/repassword.php
Строк: 24
<?php
if ($user->isAuth()) {
redirect('/');
exit;
}
$form = [
'value' => [
'login' => isset($_POST['login']) ? trim($_POST['login']) : null,
'email' => isset($_POST['email']) ? mb_strtolower(trim($_POST['email'])) : null,
'captcha' => isset($_POST['captcha']) ? mb_strtolower(trim($_POST['captcha'])) : null
],
'error' => [],
];
if (isset($_POST['submit'])) {
$stmt = $db->prepare("SELECT user_id, email, nick FROM users WHERE email = :email and nick = :nick");
$stmt->bindParam(':email', $form['value']['email'], PDO::PARAM_STR);
$stmt->bindParam(':nick', $form['value']['login'], PDO::PARAM_STR);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_OBJ);
if (empty($form['value']['email'])) {
$form['error']['email'] = 'Необходимо ввести E-Mail';
} elseif (!filter_var($form['value']['email'], FILTER_VALIDATE_EMAIL)) {
$form['error']['email'] = 'Введите корректный E-Mail';
} elseif (@$result->email !== $form['value']['email']) {
$form['error']['email'] = 'Игрок не найден';
}
if (empty($form['value']['captcha'])) {
$form['error']['captcha'] = 'Необходимо ввести код с картинки';
} elseif ($form['value']['captcha'] !== @$_SESSION['captcha']) {
$form['error']['captcha'] = 'Неверно введен код с картинки';
}
unset($_SESSION['captcha']);
if (count($form['error']) == 0) {
$user_id = $result->user_id;
$password = random_string(10);
$password_hash = password_hash($password, PASSWORD_DEFAULT);
$sql = $db->prepare('UPDATE `users` SET `password` = ? WHERE `user_id` = ?');
$sql -> execute([$password_hash,$user_id]);
$from = array(
"История Войны", // Имя отправителя
"robot@uspay.ru" // почта отправителя
);
$mail = $template->render('user.email', [
'login' => $result->nick,'password' => $password
]);
$mailSMTP->send($result->email, 'Восстановление забытого пароля', $mail, $from);
Notif :: message('Новый пароль успешно сгенерирован и отправлен на ваш E-Mail','/');
exit;
}
}
echo $template->render('user.repassword', [
'form' => $form,
]);