由於我切換到我的演示網站使用哈希密碼,我需要提供一個方法重置被遺忘的密碼。解析來自電子郵件鏈接的密碼重置鍵
我已經得到了頁面和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 =部分,但我不確定這是否正確。
任何幫助,非常感謝。
爲什麼不使用'$ _GET'? – SLaks
所以像這樣。 htmlspecialchars($ _ GET [「key」])。 ; ? – airider74
絕對不要做你在做什麼。這並不安全。使用本指南:https://paragonie.com/blog/2016/09/untangling-forget-me-knot-secure-account-recovery-made-simple – Edward