表单标记不匹配


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'])) {