经过研究发现,许多教程提供的解决方案过于复杂,甚至需要引入额外的JS文件。但实际上,Dedecms本身已经具备获取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"`,可以将这两个字段隐藏起来,避免影响用户体验,同时确保代码正常运行。
至此,用户每次提交表单时,Dedecms后台都会自动记录其IP地址和提交时间。这项功能不仅有助于提高数据的可追溯性,还能为网站的安全管理提供重要支持。