typecho PJAX评论区自定义“Token”问题
8个月前
以前使用的方法还是太嫩了,最近才发现如果评论存在分页后就会导致评论无法进行评论,最开始使用网上搜索的代码,不知道什么原因,获取不到值。
下面就是网上搜的代码
<?php $security = $this->widget('Widget_Security'); ?>
<input type="hidden" name="_" value="<?php echo $security->getToken($this->request->getReferer()) ?>">
通过单独查看“$this->request->getReferer()
”这段代码发现获取的值一直为null,这就导致获取到的“Token”和程序内部生成的不一样,通过查看“security”这个类发现其中也提供了其他获取参数和url的方法。
下面就是博主使用的代码
<input name="_" type="hidden" id="comment_" value="<?php echo Helper::security()->getToken(str_replace(array('?_pjax=%23wrap','?_pjax=%23pjax-load', '&_pjax=%23wrap'), '', $this->request->getUrlPrefix().$this->request->getRequestUri()));?>"/>
上面代码中有些替换函数非必须代码,你可以找到这段代码“$this->request->getReferer()
”替换成“$this->request->getUrlPrefix().$this->request->getRequestUri()
”即可。
zizdog
7个月前 . LV.0
我轻度使用了10几年(暴露年龄)独立博客,都没发现这许多问题,看来折腾的能力和经验无关。
山猫日记
8个月前 . LV.1
大佬以前有多嫩啊,粉的还是黑的。
寻梦xunm
8个月前 . LV.0
@山猫日记
小鲜肉