如何解决PHP令牌确认奇怪的事情
在提交表单之前,我会像这样检查令牌是否匹配:
if (empty($_SESSION['token'])) {
$_SESSION['token'] = bin2hex(random_bytes(32));
};
if($request->token==$_SESSION['token']){
..some code..
}else{
echo "Token confirmation error!";
}
HTML:
<input class="mt-1 mb-1" type="hidden" name="token" value="<?php if($_SESSION['token']){echo $_SESSION['token'];}else{echo '';}; ?>">
出于某种原因,else
总是被触发,尽管理论上应该在发送数据时进行检查。可能是什么问题?
UPD。此外,错误文本在页面顶部始终可见,尽管我使用 responseText(ajax request)
和 bootstrap toasts
显示所有通知。
解决方法
通过添加 $request 是否存在的检查来解决问题。
if($request){//This one
if($request->token==$_SESSION['token']){
...some code...
}else{
echo "Token confirmation error!";
};
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。