[英]forgot password temporary page php
如我现在所知,任何用户都可以在forgot.php页面上键入电子邮件,如果该电子邮件存在,则分配给该电子邮件密码的用户将被更改。 我将如何更改代码,以便它发送到用户电子邮件的链接,该链接将定向到用户更改密码的临时页面。 我知道如何进行更改密码脚本,但是如何创建指向临时页面的链接?
忘记了
echo "<div id='sign-parent-container'>
<div class='form-title'>Forgotten Username/Password</div>
<form action='/login' action='post' id='forgot-form'>
<ul>
<li>Type the email address you registered with, a link to a temporary page where you can change your password will be sent.</li>
<li>
<ul>
<li><input type='text' name='email' value='Type Registered Email Here' class='signupfield-2' /><li>
<li style='display:none;'><span class='error'>This email doesn't exist</span></li>
</ul>
</li>
<li class='form-submit' data-type='forgot'><a>Request Password Change</a>
<input type='hidden' name='forgot' value='1' /></li>
</ul>
</form>
</div>";
/电子邮件
$to = $email;
$subject = "example - New Password Request.";
$headers = "From: example.com";
$server = "http://www.example.com";
ini_set("SMTP",$server);
$body="
Hello $username,\r\r
Your login details are below;\r\r
Click the link below to change password:\r
http://www.exmaple.com/temporarylink
\n\n
";
//function to send email
mail($to, $subject, $body, $headers);
首先,您将要在数据库中添加另一列,例如passwordResetKey当用户“忘记密码”并输入其电子邮件时,请勿更改密码,请将passwordResetKey设置为随机生成的值。 通过电子邮件发送带有重置地址链接的电子邮件地址,该链接带有电子邮件添加器和密钥,例如forgot.php?email=example@example.org&key=hsdf39SD
用户更改密码后,将forgotPasswordKey字段重置为null。
您可能还想添加一个日期字段,以便密码重置密钥仅在24小时左右有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.