我正在使用PHP註冊系統,並且遇到問題。用戶按預期插入到數據庫中。接下來,一個標記(只是一個隨機值的散列)被附加到一個URL以及用戶標識,並且這個URL通過電子郵件發送給用戶的電子郵件,以便他們可以驗證它。PHP會話變量不接受重新調整
例如用戶128擁有此驗證網址:localhost/fPASS/?page=verify_email&id=128&token=4a629a13871cf6d354984abdfd990783
注意在URL中的用戶ID。如果我訪問鏈接是否正確爲128指出,該腳本比較正確的ID和數據庫,並改變令牌email_verified
設置爲1.
問題是,如果我嘗試註冊另一個用戶,那麼URL會重新生成用戶128的ID和令牌,而不是129 ...除非我清除我的Cookie。現在url使用會話變量來確定id和token,所以看起來他們沒有正確更新。註冊功能,但是,總是重新分配中的變量,如果沒有錯誤(其中有沒有):
// if there are no errors, redirect to success page
if (!isset($errors))
{
// send the email address on to the next page in case the verification email needs to be re-sent
$_SESSION['email'] = $safe['email'];
$_SESSION['account_id'] = $account_id;
$_SESSION['token'] = $token;
header('Location: http://localhost/fPASS/?page=reg_success');
}
的調動似乎並不雖然要發生作用。什麼可能導致原始任務在會話變量中「卡住」?
電子郵件是否會更新? – wribit
您是否嘗試在分配會話變量之前清除會話變量? session_unset()?什麼? – wribit