当使用$ 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 :(得分:0)
您可以尝试删除引号和令牌回显之间的空格:
<input type="hidden" name="token" value=" <?php echo $token ?> ">
试
<input type="hidden" name="token" value="<?php echo $token ?>">
另外,您可能第一次遇到因为_SESSION令牌为空。让我们也一定要测试一下:
if (! empty($_SESSION['token'])) {