当表单使用$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'])) {