织梦CMS是一个使用率相当普遍的网站系统。最近小编在公司使用该CMS需要添加一个表单收集客户信息。怎嘛添加表单在网上搜索到了很多的资源,很顺利的添加上了。然而在收集信息时需要验证信息内容却让我困惑很久。以下是小编总结自己的一种方法和网上的一种方法。
方法一
在织梦的plus/diy.php文件夹下,在这行代码下面$dede_fields = empty($dede_fields) ? ” : trim($dede_fields);,添加上验证代码。
//增加必填字段判断 和 if($required!=”)的中间添加以下代码:
if($required!=”){
if(preg_match(‘/,/’, $required))
{
$requireds = explode(‘,’,$required);
foreach($requireds as $field){
if($$field==”){
showMsg(‘手机号码为必填内容,请正确填写’, ‘-1’);
exit();
}
}
}else{
if($required==”){
showMsg(‘手机号码为必填内容,请正确填写’, ‘-1’);
exit();
}
}
}
其中$required来自前端页面隐藏的文本框,获取的字段的值。就是要求在前端必须有下面的文本框
<input type=”hidden” name=”required” value=”order;senddate” placeholder=”输入手机号,马上报名”>,
name=required这个值是必须有的。网上很多资源都把这个忽视了。value=”order;senddate” 是在表单中需要验证的其他的文本框的name值。
在织梦后台添加好自定义表单,并在diy.php文件中输入以上代码,便可实现表单的收集和验证功能。
方法二:
小编不想这么麻烦,直接获取到想要验证的字段值进行验证,前提也是在织梦后台添加好自定义表单。
让后在方法一同样的位置添加以下代码(小编只验证了电话号码,如需验证其他字段可以自行添加),
前端需要有字段:<input type=”text” name=”order” id=”order” class=”intxt” value=”” placeholder=”输入手机号,马上报名”>
$dede_fields = empty($dede_fields) ? ” : trim($dede_fields);
$dede_fieldshash = empty($dede_fieldshash) ? ” : trim($dede_fieldshash);
//增加必填字段判断 和 if($required!=”)的中间添加以下代码:
$tel_order=(int)$order; //因为织梦的字段是text所以需要强制转换成整型数字
$pattern = ‘/^0?1[3|4|5|6|7|8][0-9]\d{8}$/’; //正则验证电话号码
$result_order= preg_match( $pattern,$tel_order );
if ($result_order==0 ) { //判断手机号码格式是否正确,错误输出提示返回,正确继续执行提交到表单
showMsg(‘手机号码为必填内容,请正确填写’, ‘-1’);
exit();
}
if(empty($tel_order)){ //判断是否为空,空则输出提示返回,非空继续执行提交到表单
showMsg(‘手机号码为必填内容,请正确填写’, ‘-1’);
exit();
}
以上是小编遇到的问题,并搜索到使用的方法。最后小编选择的第二种方法,完成了功能的需求。