Emlog评论区显示用户操作系统与浏览器信息教程

news2024/10/3 2:26:36


近期有不少初入Emlog的站长来咨询Emlog程序的评论区域如何实现获取到评价用户的操作系统和浏览器信息,其实要实现该功能也很简单,而且网上也有不少类是的插件。今天,冬镜就和大家聊聊不用插件来实现获取评论用户操作系统与浏览器信息。改造前,请先备份源码以免无法恢复!
1、添加useragent信息
找到 comment_model.php 文件并进行改造,其路径为 include/model/comment_model.php ,该文件中第45行(默认)找到如下代码:

  1. while ($row = $this->db->fetch_array($ret)){
  2. //增加一个 useragent
  3. }

在上面写增加useragent的地方添加如下代码:

  1. $row['useragent'] = htmlspecialchars($row['useragent']);

2、提交useragent信息到数据库
继续在上一个步骤中的文件执行如下操作,在该文件的249行的评论提交中增加一个useragent的信息,然后把这个信息提交到数据库。其代码如下:

  1. CHE->updateCache(array('sta', 'comment'));
  2. doAction('comment_saved', $cid);
  3. emDirect(Url::log($blogId).'#'.$cid);
  4. } else {
  5. $CACHE->updateCache('sta');
  6. doAction('comment_saved', $cid);
  7. emMsg('评论成功,请等待审核', Url::log($blogId));
  8. }
  9. }

3、module.php新增函数
在模版目录文件 module.php 增加一个php函数,其路径为 content/templates/模版文件夹名称/module.php ,新增如下php函数:

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

4、评论区域和子评论区域添加挂载点
在上一步module.php文件中的评论区域代码和子评论区域代码添加挂载点,寻找代码的时候可以直接启用搜索功能快速查找。挂载点变量代码如下:

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

好了,关于Emlog评论区改造获取用户操作系统与浏览器信息,就简单分享到这里,如果你还有什么不懂的可以百度一下

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/7322.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试 -- 进阶 3 软件测试设计

我并没有什么方法&#xff0c;只是对于一件事情很长时间很热心地去考虑罢了。-- 牛顿 1. 设计是什么&#xff1f; 设计是有目标、有计划的创造和创作活动&#xff0c;按特定需求制定解决方案。设计指把头脑中的设想/想法通过合理的规划、周密的计划、有效的方式表达出来的过程…

【C#】生成WebAPI实现简单调用本地数据库

需求&#xff1a;通过C#生成WebAPI&#xff0c;供微信小程序调用以访问本地数据库(微信小程序部分下次再说&#xff0c;今天先记录一下C#生成WebAPI相关的坑与注意点)。 数据库&#xff1a;SQL Server Web服务器&#xff1a;IIS 编程语言&#xff1a;C# IDE&#xff1a;VS20…

微信|零到一打造一款与微信互通的自动聊天机器人应用

本文干货充足篇幅较长&#xff0c;建议收藏后阅读避免迷路。文末可获取【自动聊天机器人源码和Demo】。 本教程教大家使用即构 ZIM SDK 创建一个能与微信端互动消息的自动聊天机器人应用。ZIM SDK可广泛应用于娱乐社交、电商购物、在线教育、互动直播等多种场景下即时通讯功能实…

R语言中的函数18:readxl::read_excel(), read_xls(),read_xlsx()

文章目录read_excel(), read_xls()和read_xlsx()函数介绍实例实例1利用read_xls读取文件实例2指定读取数据的范围range实例3读取有缺失值的数据实例4read_xls和read_xlsx需要对应的文件类型实例5read_excel的使用read_excel(), read_xls()和read_xlsx()函数介绍 read_excel(),…

设计模式----单例模式

设计模式之单例模式 文章目录设计模式之单例模式一. 简介1. 什么是单例模式&#xff1f;2. 单例模式的应用场景&#xff1f;3. 单例模式的类型&#xff1f;二. 单例模式的几种写法1. 饿汉式2. 懒汉式3. 懒汉式&#xff08;线程安全性能优化&#xff09;4. 使用volatile防止指令…

【ARM】Bootloader的调试

Bootloader 为啥要做一个bootloader&#xff0c;因为最近客户调试MCU中&#xff0c;中断向量表和代码不设置一个区域内&#xff0c;在0x0的地址放置中断向量表&#xff0c;并在0x18000000的地址放置代码&#xff0c;发现会有一点问题&#xff0c;想测试一下在0x18000000的地址…

Linux C/C++异常处理方法

简介 C/C属于较为接近底层的语言&#xff0c;不像Java等“高级”语言&#xff0c;所有异常都能catch住&#xff08;例如常见的core dumped&#xff09;异常&#xff1a; int first_func() {int* error_integer nullptr;return *error_integer; } 对于异常&#xff0c;首要任…

传统 Web 框架部署与迁移

与其说 Serverless 架构是一个新的概念&#xff0c;不如说它是一种全新的思路&#xff0c;一种新的编程范式。 但是原生的 Serverless 开发框架却非常少。以 Web 框架为例&#xff0c;目前主流的 Web 框架“均不支持 Serverless 模式部署”&#xff0c;因此我们一方面要尝试接…

跳槽or裸辞?2022年真不建议···

2022年是个“难过”的一年。 疫情、经济寒冬、房价跳水、基金股票一片红。其实这些都是连锁反应。 企业不好过&#xff0c;也会引发一系列裁人潮&#xff0c;其实最近挺多小伙伴反映过&#xff0c;今年过的如牛马&#xff0c;一人干活量顶仨。想辞职躺平&#xff0c;又没有绝…

BurpSuit官方实验室之信息泄露

BurpSuit官方实验室之信息泄露 这是BurpSuit官方的实验室靶场&#xff0c;以下将记录个人信息泄露共5个Lab的通关过程 Web Security Academy: Free Online Training from PortSwigger lab1&#xff1a; Information disclosure in error messages 错误消息中的信息泄露 在…

从金鸡百花电影节,看“鼓浪屿元宇宙”的元力、魅力与想象力

文|智能相对论 作者|青月 元宇宙的走红&#xff0c;始于2021年3月10日Roblox在美上市&#xff0c;这个和现实世界相平行又相交叉的虚拟世界开始引起市场的注意&#xff0c;并迅速风靡全球。 虽然2022年&#xff0c;关于元宇宙的探索已经进入了一个相对务实的阶段&#xff0c…

【毕业设计】机器视觉停车位识别检测系统 - python 深度学习

文章目录1 简介2 检测效果3 实现方式3.1 整体思路3.2 检测空车位3.3 车辆识别4 最后1 简介 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x1f525; 对毕设有任何疑问都可以问学长哦! 这两年开始&#xff0c;各个学校对毕设…

【面试题】「2023」JavaScript 最新高频 前端面试题 指南 (必看)

前言 大家好&#xff0c;本次总结了关于JavaScript的上百道高频面试考点&#xff0c;感谢大家的留言点赞收藏 &#x1f497; 如果文中有不对、疑惑或者错字的地方&#xff0c;欢迎在评论区留言指正&#x1f33b; 更多题库 地址&#xff1a;前端面试题库 基础篇 1. 将数组的…

【微前端开发环境下,加载远程子应用的实战。】

一开始我们的本地开发运行的环境&#xff0c;如果没有启动子应用的话。对应的页面是白屏的。 问题&#xff1a; 当有关联资源需要跳转时无法跳转&#xff0c;需要额外打开一个浏览器tab页到环境上面执行操作。当bug类型为纯ui-server端的内容时&#xff0c;需要手动启动bug相关…

【数据库原理及应用】——事务并发控制和恢复技术(学习笔记)

&#x1f4d6; 前言&#xff1a;事务是数据库操作的基本逻辑单元&#xff0c;事务处理技术主要包括数据库并发控制技术和恢复技术。本章首先介绍了事务的基本概念和四个特性&#xff0c;然后讨论事务并发操作可能引起数据库的不一致性&#xff0c;继而引入数据库的并发控制技术…

Compare线刷包与卡刷包

Android系统分为卡刷包和线刷包 小米11线刷包 从该版本的boot.img中抽取出的内容如下图 小米11卡刷包 从该版本的boot.img中可以提取的内容是 也就是说&#xff0c;想要做配置文件抽取需要用线刷包。经过测试&#xff0c;目前高版本的卡刷包通过解压都无法获取到boot.img…

图像分割 - 阈值处理 - 固定阈值法

目录 1. 介绍 2. 固定阈值处理 1. 介绍 图像分割就是将图像分成不同的区域&#xff0c;每个区域满足相似的条件。通常&#xff0c;都是将图像分为两个区域&#xff1a;前景区域和背景区域。 前景就是人们感兴趣的位置&#xff0c;例如一副Lena图像&#xff0c;我们只对这副图…

Redis-Mysql八股总结

Redis 说一下 Redis以及Redis 使用场景 答&#xff1a;Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 设置过期时间的命令 # 设置 key 在…

上网行为监控都能审计到哪些内容?

现在很多企业都部署了上网行为监控系统&#xff0c;那么&#xff0c;它可以审计到哪些内容呢&#xff1f;目前市面上有不同种类的上网行为监控系统&#xff0c;其功能都是大同小异的&#xff0c;这里我们以墨门云为例&#xff0c;了解一下装了这个软件之后管理者可以审计到哪些…

WPF探究【一】

文章目录WPF的概述&#xff1a;控件分类XAML对象元素语法XAML根元素WPF和XAML命名空间声明控件Lablel示例继承关系TextBlockbuttonBorderWPF的概述&#xff1a; WindowsPresentationFoundation&#xff08;简称WPF&#xff09;WPF的核心是一个与分辩率无关且基于实量的呈现引擎…