1
這是我第一次使用這個地方,所以請原諒我,如果我在這裏完全愚蠢。交叉引用MySQL條目
基本上,我編制了一個系統,用戶A簽署一個機構直到該服務,接收該機構成員的驗證碼,然後用戶B,該機構的一部分,輸入唯一的驗證碼註冊。
註冊用戶A的代碼工作 - 它分配一個唯一的自動遞增ID(sid或uid在數據庫中)和一個隨機驗證碼(驗證) - 我對它滿意(除了安全問題,但我需要學習如何處理這些)。
我的問題是,每當有人試圖註冊爲用戶B並使用驗證碼時,系統會拒絕它,並且說驗證碼與該特定sid下的驗證碼不匹配。我有一種感覺,這是與我用來查找驗證ID的代碼有關,但我不知道我要出錯的地方。
當前的代碼:
$getsid = mysql_query(
"SELECT *
FROM schools
WHERE uid='$sid'");
while($row = mysql_fetch_array($getsid)) {
$origver = $row['verification'];
}
if ($pwd != $conf) {
header('Location: register.php?error=1');
}
elseif ($ver != $origver) {
header('Location: register.php?error=2');
}
else {
只是爲了進一步的信息,$ver
是通過用戶B,這是爲了匹配輸入$origver
驗證號碼。
**注意!** PHP的未來版本是*自嘲和刪除*的功能'mysql_'家庭。現在將是[切換到PDO](http://php.net/book.pdo)或[mysqli](http://php.net/book.mysqli)的好時機。 – Charles
你確定只有一個值從查詢中返回嗎?您的while循環是否有可能繼續超過您認爲它以不同的值結束的地方?當你有正確的價值時,爲什麼不分手? – ethrbunny
...或爲SQL查詢添加一個「LIMIT」子句。 – feeela