表单标记不匹配
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'])) {
当使用 $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'])) {