session_start();
$token = md5(uniqid(rand(), TRUE));
$_SESSION['token'] = $token;
這是我如何開始我的代碼。會話變量失敗,PHP問題
我的話,$令牌變量傳遞taht到一個隱藏字段的形式:
<input type="hidden" name="token" value="<?php echo $token; ?>" />
但條件是不正確的:
if($_POST['token'] == $_SESSION['token'])
{
echo 'Session was valid<br/>';
}
爲什麼呢?
當你做比較時,如果不是正確的值,$ _POST ['token']'和'$ _SESSION ['token']'是什麼? – Clive
隱藏字段被稱爲post,並且會話變量被稱爲令牌,而php變量被稱爲令牌。 $ token,應該在它們全部相同 –
也許是因爲每次頁面加載/重新加載時都會生成'$ token',並且在驗證表單數據之前它會被更改? – user973254