Файл: app/user/password.php
Строк: 40
<?php
Core::only('user');
$smarty->header('Сменить пароль');
if (filter_has_var(INPUT_POST, 'submit'))
{
$filter = [
'pass_old' => filter_has_var(INPUT_POST, 'pass_old')
? filter_input(INPUT_POST, 'pass_old', FILTER_UNSAFE_RAW)
: null,
'pass_new' => filter_has_var(INPUT_POST, 'pass_new')
? filter_input(INPUT_POST, 'pass_new', FILTER_UNSAFE_RAW)
: null,
'pass_verify' => filter_has_var(INPUT_POST, 'pass_verify')
? filter_input(INPUT_POST, 'pass_verify', FILTER_UNSAFE_RAW)
: null
];
if ($db->query("SELECT `id` FROM `users` WHERE `id` = '" . $user['id'] . "' AND `password` = '" . $filter['pass_old'] . "'")->rowCount() == 0)
{
$error = 'Старый пароль введен неверно.';
}
elseif (Filter::strlen($filter['pass_new']) < 6)
{
$error = 'Пароль должен содержать минимум 6 символов.';
}
elseif ($filter['pass_new'] == $filter['pass_old'])
{
$error = 'Придумайте новый пароль.';
}
elseif ($filter['pass_new'] != $filter['pass_verify'])
{
$error = 'Пароли не совпадают.';
}
else
{
$stmt = $db->prepare("UPDATE `users` SET `password` = :password WHERE `id` = :id");
$stmt->execute([
':password' => $filter['pass_new'],
':id' => $user['id']
]);
}
}
Core::show('error');
$elements[] = [
'type' => 'input',
'title' => Lang::word('Старый пароль'),
'br' => 1,
'info' => [
'name' => 'pass_old',
]
];
$elements[] = [
'type' => 'input',
'title' => Lang::word('Новый пароль'),
'br' => 1,
'info' => [
'name' => 'pass_new',
]
];
$elements[] = [
'type' => 'input',
'title' => Lang::word('Подтверждение пароля'),
'br' => 1,
'info' => [
'name' => 'pass_verify',
]
];
$elements[] = [
'type' => 'submit',
'info' => [
'name' => 'submit',
'value' => Lang::word('Изменить')
]
];
$smarty->assign([
'method' => 'POST',
'action' => '?',
'el' => $elements
]);
$smarty->display('form.tpl');
$smarty->footer();