Прочие движки | Нужна ваша помощь по коду
День добрый. Нужна ваша помощь, есть форма восстановления пароля. При введении логина, пароль юзера сбраисвается и пароль отправляется на мыло. А как сделать что бы введеный мыло и логин были проверены а при совпадении отправлять пароль на мыло.
Код:
________
посл. ред. 14.11.2019 в 13:03; всего 2 раз(а); by Zabil_parol
Код:
<?php
require_once('../core/start.php');
$title = 'Восстановление пароля';
require_once(root.'core/header.php');
echo '<div class="ot4">'.$title.'</div>';
if(isset($user['id'])){
header('location:/');
die();
}
if(isset($_POST['user']) && $_POST['user']!=''){
$array = !is_numeric($_POST['user']) ? secur($_POST['user']) : abs((int)$_POST['user']);
$where = !is_numeric($_POST['user']) ? "`user`=?":"`id`=?";
$inf = core::$dbs->queryFetch("SELECT `id`,`user`,`pass`,`mail` FROM `users` WHERE $where LIMIT 1",array($array));
if ($inf['id'] == 0) err('<b>Такого пользователя не существует!</b>');
else {
$to = $inf['mail'];
$vnick = $inf['user'];
$vid = $inf['id'];
if($to == '') err('Ошибка, У Вас не было заполнено поле mail в анкете, восстановление не возможно! Обратитесь к администрации для восстановления пароля!');
else {
$pass = gen(6);
core::$dbs->query("UPDATE `users` SET `pass` = ? WHERE `id` = ?",array(md5($pass),$vid));
$mes = 'Здравствуйте! Был произведен запрос на восстановление пароля на сайте '.$_SERVER['HTTP_HOST'].'<br />Ваш пароль: '.$pass.'<br />
С ув.Администрация ресурса '.$site;
$from = 'recovery@'.$site;
@mail($to, "Recover Pass", $mes,
"From: $from rn"
."Content-Type: text/plain; charset="utf-8" rn"
."X-Mailer: PHP/" . phpversion());
echo '<div class="info">На ваш e-mail указанный при регистрации былo отправленo письмо с новым паролем.</div>';
}
}
} else {
echo '<div class="block"><form action="?" method="post">Bаш ник / id:<br/><input name="user" value=""/><br />Ваш E-mail:<br /><input name="mail" value=""/><br/><br /><input type="submit" value="Восстановить"/></form></div>';
}
require_once(root.'core/footer.php');
?>
________
посл. ред. 14.11.2019 в 13:03; всего 2 раз(а); by Zabil_parol
del
________
посл. ред. 14.11.2019 в 14:02; всего 1 раз(а); by Везувий
________
посл. ред. 14.11.2019 в 14:02; всего 1 раз(а); by Везувий
Я так понял там и так идёт проверка в базу 'юзер маил'
Или тебе надо,что бы лог записывался кто и какой пароль восстанавливал!?
567773372, тоже не понял чего он хочет. Типа чтобы водить логин и емейл и тогда на почту приходит пароль. Но там ведь все так и реализовано
567773372 (14.11.2019 в 14:12)
Я так понял там и так идёт проверка в базу 'юзер маил'
Я так понял там и так идёт проверка в базу 'юзер маил'
Не знаю, если ввести просто ник пароль автоматически сменяется и отправляется на мыло новый пароль. это же не хорошо. Должно быть какое то проверка например ввёл свой ник и мыло и потом сменилась пароль.
Zabil_parol, что за скрипт?
Zabil_parol,
ну так можешь сделать, это убережет от того что тебя волнует. Если емейл НЕ будет введен или будет введен но НЕ правильно тогда смена пароля не произойдет и на емейл ничего не отправится.
-----------
P.S хотя такое восстановления это полная кака. В случае если я знаю емейл одного из пользователей я просто буду постоянно восстанавливать ему пароль чтобы он не смог зайти по старому тем самым быстро убью его интерес находится на сайте.
________
посл. ред. 14.11.2019 в 22:39; всего 8 раз(а); by Везувий
if ($inf['id'] == 0 OR $inf['email'] != $_POST['email']) err('<b>Такого пользователя не существует!</b>');
ну так можешь сделать, это убережет от того что тебя волнует. Если емейл НЕ будет введен или будет введен но НЕ правильно тогда смена пароля не произойдет и на емейл ничего не отправится.
-----------
P.S хотя такое восстановления это полная кака. В случае если я знаю емейл одного из пользователей я просто буду постоянно восстанавливать ему пароль чтобы он не смог зайти по старому тем самым быстро убью его интерес находится на сайте.
________
посл. ред. 14.11.2019 в 22:39; всего 8 раз(а); by Везувий
Везувий, просто видать хочет знать кто восстанавливал и что бы пароль подсвечивали,самый простой способ (и древний)думаю,что бы письма просто дублировались на определенный эмайл врезать js с отправкой на эмаил админа при положительном запросе:) И не надо никакие модули писать
Везувий, тоже не понял,для чего эта проверка:/ Если только переделать под секретный майл для восстановления тогда думаю ещё актуально