Emlog非插件实现获取评论用户操作系统与浏览器信息
首先打开include/model/comment_model.php文件
找到while ($row = $this->db->fetch_array($ret)) {(在这里增加一个获取useragent的信息),代码:
$row['useragent'] = htmlspecialchars($row['useragent']);
如图:
其次在评论提交中增加一个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));
}
}
如图:
然后打开博客模板目录,找到module.php文件,添加代码:
<?php
//获取评论用户操作系统、浏览器等信息
function get_file($url)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); // https请求 不验证证书和hosts
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
$data = curl_exec($curl);
curl_close($curl);
return $data;
}
function useragent($info){
$nua=urlencode($info);
$ua=get_file(TEMPLATE_URL.'ua.php?ua='.$nua);
$newd=json_decode($ua);
?>
<img src="<?php echo TEMPLATE_URL.$newd[2][0];?>"> <a class="newua"><?php echo $newd[2][1]; ?></a>
<img src="<?php echo TEMPLATE_URL.$newd[0][0];?>"> <a class="newua"><?php echo $newd[0][1]; ?></a>
<img src="<?php echo TEMPLATE_URL.$newd[1][0];?>"> <a class="newua"><?php echo $newd[1][1]; ?></a>
<?php
}
?>
调用格式:
<?php echo useragent($comment['useragent']); ?>
将这段代码添加到module.php评论列表和子评论列表适当位置即可...
效果展示:
PS:因为用的emlog6.0.1特别版,改好代码后报错,能力有限,找不到错误在哪,就想了个其他方法,这个方法并不可取,增加服务器负荷,降低程序运行速度。只是一个临时解决办法。
评论
4条评论六十二丶 Lv.1
Windows 7 x64
Google Chrome 69.0.3497.92
回复
OK,有时间我试一下
浙江省杭州市 电信
admin Lv.1
Windows 10 x64
Google Chrome 68.0.3440.106
回复
回复了六十二丶:嗯,你那有老司机6.0.1的插件吗?后台商店不能下载了。
北京市 移动
六十二丶 Lv.1
Windows 7 x64
Google Chrome 69.0.3497.92
回复
回复了admin:没有哎!
还是有点问题啊老哥,我这上面还是不会出现,很尴尬http://www.prm612.top/post/34,你帮忙看一下,也不知道那里的原因 
浙江省杭州市 电信
admin Lv.1
Windows 10 x64
Google Chrome 68.0.3440.106
回复
回复了六十二丶:估计改错了。压缩包里的内容放到模板目录
北京市 移动