2016-10-25 21 views
0

フォームが$ token#1トークンで送信されたときは一致しますが、$ token#2トークンで送信された場合は "redir"と一致しません 私はちょっと混乱しています。私は間違ってここにやっているフォームトークンが一致しません

<?php 

session_start(); 
if(isset($_SESSION['token'])){ 

    if ($_POST['token'] == $_SESSION['token']) { 

      echo "login ";   
    } 
    else 
    { 

     echo "redir " ; 
    } 

} 

// 1st test 
// $token = time(); 

// 2nd test 
$token = md5(time().$_SERVER['REMOTE_ADDR']); 
$_SESSION['token'] = $token; 

?>      





     <form action="" method="post"> 

    <input type="hidden" name="token" value=" <?php echo $token ?> "> 
    <input type="text" name="usr"> 
    <input type="text" name="pass"> 
    <input type="submit" name="submit" value="send"> 



</form> 







</body> 
</html> 
+0

sidenote: '1)'と '2 'が実際のコードの一部ではないことを確認してください。彼らは? –

+0

いいえ、私はそれを少し編集しました。 – Xigo

+0

以下の答えを見てください。 –

答えて

0

あなたは引用符とトークンエコーの間のスペースを削除してみてくださいことができます:

<input type="hidden" name="token" value=" <?php echo $token ?> "> 

<input type="hidden" name="token" value="<?php echo $token ?>"> 
を試してみてください

また、_SESSIONトークンが空であるため、初めてアクセスする可能性があります。

if (! empty($_SESSION['token'])) { 
+0

これは恥ずかしいおかげでした – Xigo

関連する問題