Я хочу отправлять электронные письма пользователям, когда забывают свои пароли, которые побуждают их перезагружать свои пароли. Я знаю, что это спорно и ищу несколько хороших варианты / предложения / методы / статьи на выбор.
Я предлагаю пользователям нажимать ссылку «забыть пароль» с помощью простого скрипта с частью PHP, которая делает это:
$Email = $_POST['email']; $success = false; $formError = false; if(isset($_POST['sub_forgot_pw'])) { if(empty($_POST['email'])) { $formError = "true"; $error = "Please enter your e-mail address."; }else{ $to = $Email; $subject = "Password Help"; $message = "To reset your password, please <a href='http://www.blahblahblah.org'>Click here</a><br /><br />Do LIFE,<br /> The Team"; $from = "CysticLife <noreply@cysticlife.org>"; $headers = 'MIME-Version: 1.0' . "\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n"; $headers .= "From: $from"; if(mail($to, $subject, $message, $headers));{ $success = "true"; } } }
Вот что я делаю:
У меня есть таблица reset_password. Когда кто-то просит сброс, они обычно нажимают ссылку на вашем сайте, в которой говорится «забыли пароль», где они ввели свой адрес электронной почты, который они зарегистрировали, и ваша система отправляет ссылку. Конечно, вы начинаете с выяснения, зарегистрирован ли пользователь вообще. путем выбора пользователей, где электронная почта = $ _POST ['email']. Если они существуют, сделайте случайно сгенерированный токен, например
$token = md5($_POST['email'].time());
Но, как сказал Бух Бух в комментарии ниже, вы можете использовать что-то менее очевидное, чтобы создать свой токен. crypt () может принять шаблон соли, если хотите.
Вставьте запрос (адрес электронной почты и токен) в таблицу reset_password, затем отправьте им ссылку, например
http://www.domain.com/resetpassword.php?token=<?php echo $token; ?>
Затем в этом файле вы берете $ _GET ['токен'] и перекрестно ссылаетесь на него с помощью таблицы reset_password. Если токен действителен, вы представляете им форму, которая запрашивает новый пароль. После отправки выберите пользователя с адресом электронной почты, связанным с этим токеном, и обновите таблицу пользователя.
Существует опасность потерять URL-адрес любому, кто нюхает сеть. Чтобы этого избежать, вы можете создать случайный короткий ключ, такой как vX4dq, и сохранить его в своей базе данных. Попросите пользователя запомнить это. Когда пользователь сбрасывается по ссылке, попросите его ввести только тот ключ, который ему известен.
Дополнительно: – вы можете отобразить этот ключ в капчу, чтобы он не понюхал.