由于我在演示网站中切换到使用散列密码,我需要提供重置忘记密码的方法。
我已经有页面和php设置发送一个带有url +密钥的电子邮件,用户需要这些密码才能设置新密码。该电子邮件包含要单击的URL,该链接将用户带到重置密码页面。
我遇到一些麻烦的部分是从网址中提取密钥信息,以便我可以用它来与重置密码提交产生的密钥进行比较。数据库在提交忘记密码表单时正确插入密钥。
我假设我需要使用parse_url从链接中提取此信息,但我不太确定如何仅从链接中提取关键信息。
我认为PHP_URL_QUERY会将我带到URL的正确部分。从这里开始我不太确定下一步该做什么,因为PHP_URL_QUERY给了我所有这些:
键=” $ 2Y $ 10 $ q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1
当我真正想要的是做这个比较时:
”。$ 2Y $ 10 $ q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1
这是我现在的代码......
<?php
require_once '../php/connect.php';
function URL() {
$purl = 'http';
if ($_SERVER["SERVER_PORT"] == "80") {
$purl .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $purl;
}
$key = parse_url($purl, PHP_URL_QUERY)
$qry = mysqli_query($link, "SELECT id FROM planner WHERE rkey = '$key'");
$array = mysqli_fetch_array($qry);
}
}
我想我只需要一种方法从其余部分剥离key = part,但我不确定这是不是正确。
非常感谢任何帮助。
答案 0 :(得分:0)
使用以下内容......这只是一个开始。再次感谢大家。
<?php
require_once '../php/connect.php';
$sub = htmlspecialchars($_GET["key"]);
$ser = "'.";
$rkey = str_replace($ser,'',$sub);
$qry = mysqli_query($link, "SELECT id FROM planner WHERE rkey = '$rkey'");
$row = mysqli_num_rows($qry);
echo $row;
?>