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 [「トークン」] 'と' $ _SESSION [「トークン」]には何ですか? – Clive
隠しフィールドはpost ,,と呼ばれ、セッション変数はtokenと呼ばれ、php変数はtokenと呼ばれます。 $ tokenは、ページの読み込み/再読み込みのたびに '$ token'を生成し、フォームデータが検証される前に変更されている可能性があるため、おそらく –
の内部で同じでなければなりません。 – user973254