Php 从通过电子邮件发送的weblink解析密码重置密钥
由于我在我的演示网站中切换到使用哈希密码,我需要提供一种重置忘记密码的方法 我已经有了页面和php设置,可以发送一封带有url+密钥的电子邮件,用户需要该密钥才能设置新密码。电子邮件包含要单击的url,链接将用户带到重置密码页面 我遇到的一点麻烦是从url中提取密钥信息,这样我就可以使用它来比较从重置密码提交中生成的密钥。提交忘记密码表单时,数据库会正确插入密钥 我假设我需要使用parse_url从链接中提取此信息,但我不太确定如何仅从链接中提取关键信息 我认为PHP_URL_查询可以让我找到URL的正确部分。从这里开始,我不太确定下一步该做什么,因为PHP_URL_查询提供了所有这些: 密钥='.$2y$10$q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1 当我真正想做比较的时候: “.$2y$10$q53hrjswTfXnkxg8QeJysezbBi91t4yJcbV9bH3addOSiotr6kE1 这是我现在掌握的密码Php 从通过电子邮件发送的weblink解析密码重置密钥,php,html,email,url,Php,Html,Email,Url,由于我在我的演示网站中切换到使用哈希密码,我需要提供一种重置忘记密码的方法 我已经有了页面和php设置,可以发送一封带有url+密钥的电子邮件,用户需要该密钥才能设置新密码。电子邮件包含要单击的url,链接将用户带到重置密码页面 我遇到的一点麻烦是从url中提取密钥信息,这样我就可以使用它来比较从重置密码提交中生成的密钥。提交忘记密码表单时,数据库会正确插入密钥 我假设我需要使用parse_url从链接中提取此信息,但我不太确定如何仅从链接中提取关键信息 我认为PHP_URL_查询可以让我找到U
<?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);
}
}
通过以下方式实现了这一点……这只是一个开始。再次感谢大家
<?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;
?>
为什么不使用$\u GET
?类似于。htmlspecialchars($_GET[“key”])?绝对不要做你正在做的事。它不安全。使用本指南:你需要学习如何逃跑。对SQL查询进行HTML转义毫无意义,而且仍然不安全。感谢insight的朋友们……这是我在这一特定网页设计中的第一次尝试。我要好好看看导游。