表单标记不匹配

form token not matching

当使用 $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>

您能否尝试删除引号和标记 echo 之间的空格:

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

尝试

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

此外,您可能是第一次通过,因为 _SESSION 令牌是空的。我们也一定要对此进行测试:

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