【问题标题】:php mail onclick on link execute mysql commandphp mail onclick链接执行mysql命令
【发布时间】:2014-02-17 06:14:42
【问题描述】:

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

    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;

    }

【问题讨论】:

  • 如果没有找到用户,你会回显“邮件成功发送..”..
  • $newid 是用户邮箱,我没有使用用户名
  • 如果您发现 NO USER 您说“邮件已发送”,然后返回 false;在这种情况下,不会发送任何邮件...您还缺少 else 语句的左括号

标签: php mysql ajax email passwords


【解决方案1】:

在这里写完整的代码有点长。

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

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

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

还有其他方法可以做到这一点,请查看以下教程:

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 我想要的是当用户点击链接时会发生 mysql update commad
    • 那么您应该将此功能添加到您的脚本或制作另一个。 if (isset($_GET['verify'])) { update mysql }
    • 看不懂,能不能上答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-02
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多