Emlog非插件实现获取评论用户操作系统与浏览器信息

  • 内容
  • 相关

以前通常都是使用得插件实现,那现在可以不用插件即可实现

如果你是喜欢折腾您的博客的可以来尝试改动一下

下面是具体的步骤

首先找到并打开 include/model/comment_model.php 文件 找到如下代码(一般在第45行)

while ($row = $this->db->fetch_array($ret)){
           //在这里增加一个获取useragent的信息
}

在上面的位置增加一个获取useragent的信息的代码
$row['useragent'] = htmlspecialchars($row['useragent']);

代码位置如下图所示
1.jpg


其次在249行的评论提交中增加一个useragent的信息到数据库里

修改代码如下:

function addComment($name, $content, $mail, $url, $imgcode, $blogId, $pid) 
 {
  $ipaddr = getIp();
  $useragent = $_SERVER['HTTP_USER_AGENT'];
  $utctimestamp = time();
 
  if($pid != 0) {
   $comment = $this->getOneComment($pid);
   $content = '@' . addslashes($comment['poster']) . ':' . $content;
  }
 
  $ischkcomment = Option::get('ischkcomment');
  $hide = ROLE == ROLE_VISITOR ? $ischkcomment : 'n';
 
  $sql = 'INSERT INTO '.DB_PREFIX."comment (date,poster,gid,comment,mail,url,hide,ip,pid,useragent)
    VALUES ('$utctimestamp','$name','$blogId','$content','$mail','$url','$hide','$ipaddr','$pid','$useragent')";
  $ret = $this->db->query($sql);
  $cid = $this->db->insert_id();
  $CACHE = Cache::getInstance();
 
  if ($hide == 'n') {
   $this->db->query('UPDATE '.DB_PREFIX."blog SET comnum = comnum + 1 WHERE gid='$blogId'");
   $CACHE->updateCache(array('sta', 'comment'));
   doAction('comment_saved', $cid);
   emDirect(Url::log($blogId).'#'.$cid);
  } else {
   $CACHE->updateCache('sta');
   doAction('comment_saved', $cid);
   emMsg('评论发表成功,请等待管理员审核', Url::log($blogId));
  }
 }

2.jpg


然后打开Emlog模板目录并找到module.php文件

添加如下代码:

<?php
//获取评论用户操作系统、浏览器等信息
function useragent($info){
 require_once 'useragent.class.php';
 $useragent = UserAgentFactory::analyze($info);
?>
<img src="<?php echo TEMPLATE_URL.$useragent->platform['image']?>">&nbsp;<?php echo $useragent->platform['title']; ?>&nbsp;
<img src="<?php echo TEMPLATE_URL.$useragent->browser['image']?>">&nbsp;<?php echo $useragent->browser['title']; ?>
<?php
}
?>

最后再到模版文件module.php中的评论列表和子评论列表适当位置添加如下挂载点代码:


<?php echo useragent($comment['useragent']); ?>

实际网站效果展示11.png


本文标签:

收录状态:百度-[百度已收录]360-[360已收录]搜狗-[搜狗已收录]

版权声明:若无特殊注明,本文皆为《曹杰峰》原创,转载请保留文章出处。

本文链接:Emlog非插件实现获取评论用户操作系统与浏览器信息 - https://www.caojiefeng.com/jyjc/96.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论

1条评论
  1. avatar

    六十二丶 Lv.1 Chrome 69.0.3497.92 Chrome 69.0.3497.92 Windows 7 x64 Edition Windows 7 x64 Edition 回复

    跟着错了,但是报错 useragent_detect_device加载失败,请问是什么原因呢?

    浙江省宁波市 联通

    00:00 / 00:00
    顺序播放