当前位置:首页 > 行业动态 > 正文

如何通过IP显示织梦dedecms评论中的网友具体地址?

织梦dedecms评论通过IP显示网友具体地址,可以通过修改模板文件实现。

织梦(DedeCMS)是一款流行的开源内容管理系统,广泛应用于企业建站和信息管理,在用户评论系统中,通过IP地址显示网友的具体地址是一个常见需求,这不仅可以增加互动性,还能提高用户体验,以下是实现这一功能的方法,详细步骤如下:

如何通过IP显示织梦dedecms评论中的网友具体地址?  第1张

一、准备工作

1、下载纯真IP数据库:从可信赖的网站下载最新的QQWry.Dat文件,并将其解压到/plus目录下。

2、修改配置文件:确保你的服务器支持curl函数,如果不支持,需要联系主机提供商开启。

二、具体实现步骤

1. 修改数据库表结构

需要在dede_feedback表中添加一个字段来存储IP地址对应的地区信息,可以通过以下两种方式之一来实现:

使用phpMyAdmin:进入phpMyAdmin,找到dede_feedback表,点击“结构”选项卡,然后添加一个新的字段,例如adds,类型设置为varchar(20)。

使用SQL命令:登录织梦后台,进入“系统”>“SQL命令行工具”,输入以下命令并执行:

   ALTER TABLE dede_feedback ADD COLUMN adds VARCHAR(20);

2. 修改代码文件

接下来需要修改几个PHP文件来实现IP地址到地区的转换以及将结果存储到数据库中。

修改/plus/feedback_ajax.php文件

在大约第53行左右的位置,添加以下代码以获取IP地址并将其转换为地区信息:

  if(isset($_GET['ip'])){
      $ip = $_GET['ip'];
  } else {
      $ip = $_SERVER['REMOTE_ADDR'];
  }
  include('misc.func.php');
  $adds = convertip($ip);

然后在插入评论数据的地方(大约第97行),将$adds写入数据库:

  $inquery = "REPLACE INTOdede_feedback(aid,typeid,username,arctitle,ip,adds,ischeck,dtime,mid,bad,good,ftype,face,msg)
  VALUES ('$aid','$typeid','$username','$arctitle','$ip','$adds','$ischeck','$dtime', '{$cfg_ml>M_ID}','0','0','$feedbacktype','$face','$msg'); ";

修改/plus/feedback_add.php文件

同样地,在大约第53行左右的位置,添加以下代码以获取IP地址并将其转换为地区信息:

  if(isset($_POST['ip'])){
      $ip = $_POST['ip'];
  } else {
      $ip = $_SERVER['REMOTE_ADDR'];
  }
  include('misc.func.php');
  $adds = convertip($ip);

然后在插入评论数据的地方(大约第97行),将$adds写入数据库:

  $inquery = "REPLACE INTOdede_feedback(aid,typeid,username,arctitle,ip,adds,ischeck,dtime,mid,bad,good,ftype,face,msg)
  VALUES ('$aid','$typeid','$username','$arctitle','$ip','$adds','$ischeck','$dtime', '{$cfg_ml>M_ID}','0','0','$feedbacktype','$face','$msg'); ";

3. 显示地区信息

最后一步是在前台页面上显示评论者的地区信息,找到相应的模板文件(例如article_article_comment.htm),在适当位置添加以下代码:

<span><?php echo $adds; ?></span>网友<?php echo GetDateMk($dtime); ?>发表</div>

三、常见问题解答

Q1: 为什么有时候无法获取到正确的IP地址?

A1: 这可能是由于服务器配置或网络环境导致的,请确保服务器开启了curl函数,并且没有防火墙阻止外部请求,可以尝试使用不同的IP数据库文件,或者检查代码中是否正确处理了所有可能的异常情况。

Q2: 如果我想在后台也能看到评论者的地理位置怎么办?

A2: 可以在后台管理界面的相关模块中添加显示地区信息的字段,具体操作方法类似于前台页面的修改,只需要在相应的模板文件中添加显示地区信息的代码即可。

通过以上步骤,你可以成功地在织梦DedeCms系统中实现通过IP地址显示网友的具体地址功能,这不仅增强了网站的互动性,还提高了用户体验,希望本文对你有所帮助!

0