gpt4 book ai didi

php - PHP 的密码恢复邮件不起作用

转载 作者:行者123 更新时间:2023-11-29 11:35:49 24 4
gpt4 key购买 nike

我正在尝试创建一个脚本来通过邮件恢复密码,但它不起作用。此前,它出现了电子邮件无效的错误。现在它结束了我的邮件,但其中包含加密密码

请帮我解密密码任何导致此错误的线索都是非常值得关注的

  <?php
require_once("config.php"); //Database Connection

//Catch Field Data
$email = $_POST['email'];
$submitted = $_POST['submitted'];

if($email) {
$query = printf("SELECT * FROM registration where email='$email'");
$result = mysql_query($query);
$rowAccount = mysql_fetch_array($result);
}

if ($rowAccount) {

$subject = "Your goprestige Username / Password Reminder";
$headers = "From: info@abc.com";
$fname = $rowAccount['fname'];
$password = $rowAccount['password'];
$msg = "<h1>My abc Admin</h1>
<p>Hello '$user'!</p>
<p>Here is the username/password reminder you requested. If you didn't request this reminder then don't panic too much, the likely hood of someone gaining access is minimal. Thank you abc </p>
<p>Username: '$fname'</p>
<p>Password: '$password'</p>
<p>Many thanks, the abc Support Team.</p>
";

$success = mail($email, $subject, $msg, $headers);

if($success) {
echo "<p id=errors>Reminder Success: Your Username and Password have been emailed to $email";
}
} else ($submitted) {
echo '<p id="errors">Reminder Failed: The email you entered was not found on the system, please try again.</p>';
}
?>

HTML

 <form class="form-horizontal ct-u-paddingBottom20" action="php/forget.php" method="post" id="passwd" style="display:none;">
<div class="form-group">
<label for="username" class="col-sm-2 control-label">Useremail: </label>
<div class="col-sm-10">
<input type="text" class="form-control" id="email" name="email" placeholder="enter your email id" required>
</div>
</div>
<div>
<center>
<span style="color:green;display:none;" class="success-footer"><h4 style="margin-left: 0px;">password link is sent </h4></span>
<span style="color:orange;display:none;" class="error-footer"><h4 style="margin-left: 0px;">invalid email</h4></span>
</center>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<p><input type="submit" value="Reset Password" /></p>
</div>
</div>


</form>

Javascript

<script type="text/javascript">

var frm = $('#passwd');
frm.submit(function (ev) {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
//alert(data);
if (data) {
//alert('data');
$('.success-footer').css('display','block');
}
else{
$('.error-footer').css('display','block')
}
}
});

ev.preventDefault();

});
</script>

最佳答案

通常密码是经过散列处理的,而不是经过编码的。不同之处在于,哈希值无法通过“未哈希处理”来恢复原始密码。在代码的密码保存函数中,检查是否使用了password_hash()函数。如果这样做,您将无法取回该密码。

这实际上是一件好事,因为密码提醒通常是提供“忘记密码”功能的不安全方式。请参阅 Troy Hunt 关于构建安全密码重置功能的文章 ( http://www.troyhunt.com/2012/05/everything-you-ever-wanted-to-know.html )

一些解决方案可能是:

1) 提供一次性、有时限使用的密码,他们可以用它来更改密码。确保任何时候只有其中一个处于事件状态。

2) 提供指向唯一网址的链接,该链接允许用户接受某些问题(例如安全问题),以验证他们不仅是电子邮件的收件人,而且实际上是请求更改密码的人。

第二个选项会更安全,因为它会提供额外的验证层,当然,代价是给用户带来便利。

关于php - PHP 的密码恢复邮件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com