php mail onclick on link execute mysql命令

时间:2014-01-26 12:35:04

标签: php mysql ajax email passwords

我正在尝试使用邮件重置密码,因此用户将在忘记的密码上输入他的电子邮件,点击按钮将其发送到数据库中的电子邮件。现在我要做的是给用户一个新的随机密码,为此,用户应该点击电子邮件上的链接来验证他是否真的想要更改密码,这可能吗?这是我的代码

    if (isset($_POST['mytxtmail']))
    {
        $newid = ($_POST['mytxtmail']);

    $result = mysqli_query($con,"SELECT EMAIL FROM members WHERE EMAIL='$newid'");
    if($result->num_rows == 0) {
    echo 'Mail  Successfully Sent to '.$newid;
    return false;   
    }
    else
    $to      = $newid;
    $subject = 'the subject';
    $message = 'Please Click here to Verify the Change of Password';
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: webmaster@example.com' . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);

    echo 'Mail  Successfully Sent to '.$newid;

    }

2 个答案:

答案 0 :(得分:1)

在这里编写完整代码是一个漫长的过程。

您可以做的一种方法是,在用户表格中创建一个新列,让我们说pass_request_hash,现在每当用户点击忘记密码选项并输入他的电子邮件ID并提交时,就会运行更新查询将随机值转储到该用户的pass_request_hash,同时使用相同的哈希值发送邮件,并将其电子邮件ID作为GET参数发送。

现在,当用户点击通过电子邮件发送给他的链接时,该链接指向一个PHP脚本,该脚本会检查从GET参数收到的哈希和电子邮件是否与数据库中的那些,如果是,则可以执行另一个脚本以向该电子邮件ID发送新密码。

您还可以为该哈希设置超时。

还有其他方法可以做,请查看其中一些教程:

答案 1 :(得分:0)

您应该在电子邮件中包含该链接,该链接会将用户带到密码验证脚本(它可能与您在此处使用的相同,仅添加所需的功能)。