首页 / 教程 / typecho PJAX评论区自定义“Token”问题

typecho PJAX评论区自定义“Token”问题

admin头像 admin 1个月前 教程 71 热度

以前使用的方法还是太嫩了,最近才发现如果评论存在分页后就会导致评论无法进行评论,最开始使用网上搜索的代码,不知道什么原因,获取不到值。

下面就是网上搜的代码

<?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()”即可。

来自: 重庆市 . 夸克浏览器
打赏
喜欢的话就打赏支持一下

支付宝二维码

支付宝二维码

微信二维码

微信二维码
赞 14