Typecho加速说 篇二——修复TpCache缓存评论者个人信息的问题

通过修改comments.php文件解决了TpCache缓存评论者个人信息的问题

前言

老高写的TpCache插件配合Redis确实是非常好用,但是一直存在一个很大的问题。当文章被评论后,评论者的个人信息也会被自动缓存下来(原本是保存在访客的cookies中的),导致下一个访客会看到上一个评论者的信息,造成信息泄露。

但是老高一直建议大家使用第三方评论系统,所以也没有去修复这个Bug。本篇文章通过修改comments.php文件解决了这个问题。

教程

首先编辑/usr/themes/你的主题/component/comments.php文件

分别找到这三个语句并全部替换为空值:

<?php $this->remember('author'); ?>
<?php $this->remember('mail'); ?>
<?php $this->remember('url'); ?>

找到下列语句;

<div id="author_info" class="hide">

并修改为:

<div id="author_info">

然后在文件底部插入一下代码:

<script>
<?php if(!$this->user->hasLogin()){ ?>
function getCookie(name){
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(decodeURI(arr[2]));
    else
        return null;
    }
function adduser(){   
    document.getElementById('author').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_author');
    document.getElementById('mail').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_mail');
    document.getElementById('url').value = getCookie('<?php echo md5($this->request->getUrlPrefix()); ?>__typecho_remember_url');
}
adduser();
<?php } ?>
</script>

保存即可。

参考文章:修复typecho使用缓存插件TpCache时缓存评论人的信息的问题

历史评论与记录(7)

保留旧站已审核内容,目前只读。

  1. 乔千
    ::aru:cryingface:: 这个插件一直不敢用 怕站点原地爆炸
    1. 极一
      被我乱改源码炸过一次了 ::aru:crying:: 还好有定时全站备份
      1. 乔千
        ::aru:cryingface:: typecho备份我感觉有点问题 我那天备份了个0kb 幸好没删数据库 不然我就跑路了
        1. 极一
          确实不靠谱 ::aru:speechless:: ,我用宝塔备份的
    2. Ponyk
      测试一下?
      1. 黄蜀黍
        看来看去,还是决定裸奔吧,宝塔软件商店的堡塔网站加速插件怎么样,有没有测试过
        1. Heresy
          用了老高的插件后速度是快了,但搜索失效了,不知道怎么搞
          使用 Hugo 构建
          主题 Stack 由 Jimmy 设计