网站全局表单:前端在线留言提交间隔二次开发
使用迅睿cms建站,在线留言功能一般使用官方提供的【网站全局表单】插件来制作,但是经常遇到一些垃圾广告信息提交。防止垃圾信息提交的方式有很多,比如开启验证码功能等。但是专业点的机器人也会破解。所以我们还可以通过二次开发增加前端用户的提交间隔,以减少垃圾信息提交。
查看表单别名
网站后台 - 设置 - 内容设置 - 全局表单 - 查看你所建的表单别名 - 这里以liuyan为例,如下图:
修改表单控制器
找到表单前端控制器文件/dayrui/App/Form/Controllers/Liuyan.php 这里的文件名称为上一步你的表单别名(二次开发时可以修改本文件,不影响升级)修改替换为以下代码:
<?php namespace Phpcmf\Controllers;
/**
* 二次开发时可以修改本文件,不影响升级覆盖
*/
class Test extends \Phpcmf\Home\Form
{
public function index() {
$this->_Home_List();
}
public function show() {
$this->_Home_Show();
}
public function post() {
// 提交前的操作
if (IS_POST && \Phpcmf\Service::C()->session()->getTempdata('test_post')) {
$this->_json(0, '提交时间 间隔太短了');
}
// 提交处理
$this->_Home_Post();
}
// 新增回调函数
protected function _Call_Post($data) {
$cp = parent::_Call_Post($data);
if ($cp['code']) {
// 这里写 提交成功时的 你的程序代码
\Phpcmf\Service::C()->session()->setTempdata('test_post', 'test_post', '180'); // 180表示3分钟
$this->_json($cp['code'], '提交表单成功', $cp['data']);
} else {
$this->_json(0, '提交失败', $cp['data']);
}
}
}
我这里设置的间隔是三分钟,根据自己所需,修改上方代码的提交间隔时间和提示内容就行了。内容模块表单如果需要二开提交间隔,也可以参考上述方法。
相关文档
- 迅睿cms网站任意页面前端调用全局模块表单提交及自定义样式方法
- 为下载的迅睿cms模板前端增加友情链接版块
- 迅睿cms二次开发系统目录结构说明
- 迅睿cms使用全局表单制作证书查询功能
- 网站全局表单:前端在线留言提交间隔二次开发
- 迅睿cms如何在前端判断当前页面是哪一个模板文件
- 迅睿cms升级php8前端报错系统故障如何解决
- WordPress设置留言嵌套层级方法
- WordPress 去掉留言中的网址字段
- 迅睿CMS:前端/会员中心样式升级
- 迅睿CMS:前端无法进行拖动排序
- 迅睿CMS:您的用户组无权限提交
- 迅睿CMS:F12数据提交侦探工具
- 迅睿CMS:外部网站提交本站表单
- 迅睿CMS:禁止前端提交表单
- 在线留言单选框选择的判断问题
- 留言模型如何使用手机短信验证码
- 判断有无子栏目(全局)
- 留言模型验证码调用
- 易优cms二次验证密码忘记解决办法