Я создаю страницу забытого пароля и буду отправлять пользователю временный пароль по электронной почте, чтобы он мог войти и сбросить свой пароль.
Что следует учитывать при создании пароля, что такоелучший метод.
Идея, которая у меня возникла, выглядит примерно так: $temporarypassword = sha1($_SERVER['REMOTE_ADDR'])
В попытке разрешить им входить только с IP-адреса, с которого они запрашивают временный пароль.Каков наилучший способ сделать это ??
Код на данный момент:
if(strpos($_SERVER['HTTP_REFERER'],'domain.com') && ($_POST['forgotpasstoken'] == sha1($_SESSION['token'].'forgotpassword'))){
if(isset($_POST['forgotemail']) && !empty($_POST['forgotemail'])){
$email = mysql_escape_string(trim($_POST['forgotemail']));
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
echo '<div class="error">Please enter a valid email address.</div>';
} else {
$sql = "SELECT email FROM users WHERE email = '$email' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) > 0) {
//If email/user exists
$temporarypassword = sha1($_SERVER['REMOTE_ADDR'])
//EMAIL PASSWORD HERE
echo '<div class="success">A temporary recovery password has been emailed to you.</div>';
//If email/user exits
} else {
echo '<div class="error">This email is not registered.</div>';
}
}
} else {
echo '<div class="error">Please enter an email address.</div>';
}
}