织梦dedecms自定义表单获取留言者的IP地址及留言时间

网站设置了自定义表单提交功能 ,最近登录后台发现很多留言,但看不到留言的具体发布时间 。

后来注意到一个细节,每次登陆后台,织梦系统都会记录登陆时间和IP地址,这说明织梦自带IP获取和时间获取。

QQ截图20180514225104

那么接下来分析了相关的文件代码,整理了一套自动获取时间和IP的代码出来,修改步骤如下:

首先修改plus/diy.php,在大概69行的地方找到:

if($fieldinfo[1] == 'textdata')  
{  
${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));  
${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});  
}

在它下面添加

if($fieldinfo[0] == 'ip')
{
${$fieldinfo[0]}=GetIP();
}
if($fieldinfo[0] == 'time')
{
${$fieldinfo[0]}=date("Y-m-d H:i:s");
}

 

然后在自定义表单里添加字段

IP地址:ip

提交时间:time

字段名称一定要和diy.php添加的字段名一致

注意:新增表单字段之后,必须要更新一下表单中 dede_fields 和 dede_fieldshash 这两项的值,很多站长会忽略这个问题,导致后台无法接收新增字段的内容。

在表单中调取:
<input type="hidden" name="ip" id="ip" value="">
<input type="hidden" name="time" id="time" value="">
type="hidden" 标签可以把这两个表单隐藏起来,不会影响代码执行。

这样用户执行提交操作,后台就会自动获取用户IP地址和当前的时间。

THE END