DEDECMS织梦自定义表单中必填项、电话邮箱过滤以及验证码规则

时间:2023-11-24 19:18:32

织梦自定义表单必填项规则--->(wwwshu-acca.com网站表单)

1. 在plus/diy.php 的第 40行下加如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//增加必填字段判断
if($required!=''){
    if(preg_match('/,/', $required)){
        $requireds = explode(',',$required);
        foreach($requireds as $field){
            if($$field==''){
                showMsg('带*号的为必填内容,请正确填写', '-1');
                exit();
            }
        }
    }else{
        if($required==''){
            showMsg('带*号的为必填内容,请正确填写', '-1');
            exit();
        }
    }
}

2.在模版的表单里加:

1
<input type="hidden" name="required" value="name,qq,telephone" />

织梦自定义表单电话和邮箱验证

dedecms的自定义表单没有对提交的信息进行过滤,经常会有垃圾信息骚扰,

本站提供2条检测规则,是利用正则方法,可以检测手机号码和邮箱,

修改plus下的diy.php 再提交入库前插入下面代码即可,

其中的 $telphone和$email就是提交的手机号码和邮箱值名,如果不是我设定的可以自行修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
//判断手机号码是否正确
if(!eregi("^13[0-9]{9}|15[0-9]{9}$",$telphone))
{
 showMsg('手机号码不对,请正确填写''-1');
 exit();
}
//验证邮箱
if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$email)) {
showMsg('请您填写正确的E-Mail 地址!''-1');
exit();
}

织梦自定义表单验证码

利用织梦内容管理系统(DedeCMS)自带提供的自定义表单功能即可满足大多数的此类需求。

  通过给自定义表单加入验证码的功能,可以防止一些用户恶意提交。

  • 1、先进入DedeCMS后台生成自定义表单。

  • 2、在自定义表单模板中添加验证码代码,如下:

<input name="validate" type="text" id="vdcode" style="text-transform:uppercase;" size="8"/><img id="vdimgck" align="absmiddle" onClick="this.src=this.src+'?'" style="cursor: pointer;" alt="看不清?点击更换" src="../include/vdimgck.php"/><a href="javascript:vide(-1);" onClick="changeAuthCode();">看不清? </a>

  • 3、在当前页添加JS代码,如下:

<script type="text/javascript" language="javascript">//验证码 function changeAuthCode(){var num =newDate().getTime();varrand= Math.round(Math.random()*10000);    num = num +rand;    $('#ver_code').css('visibility','visible');if($("#vdimgck")[0]){        $("#vdimgck")[0].src ="../include/vdimgck.php?tag="+ num;}returnfalse;}</script>

  • 4、修改订单处理页面,打开网站根目录/plus/diy.php文件, 添加验证代码到第61行左右位置。如下:

if(!empty($dede_fields)){$validate=empty($validate) ? '':strtolower(trim($validate));$svali=strtolower(GetCkVdValue());if(($validate==''||$validate!=$svali)&&preg_match("/6/",$safe_gdopen)){                ResetVdValue();                ShowMsg('验证码不正确!','-1');exit;}}