欢迎访问融科网络!我们专注于郑州网站建设郑州网站制作郑州网站设计郑州做网站等相关服务!
营销之道 干货分享
了解企业新动态,分享前沿的营销推广干货,成长路上,我们携手同行

编程代码

织梦实现自定义表单提交信息必填项 数据过滤

标签: 作者:融科网络 | 点击:
03

Nov
2019

导语
织梦CMS 自定义表单 。 1.前台提交数据过滤 前台数据过滤主要针对普通用户,在HTML层面,通过Js方式,对提交的数据进行校验。如判断表单是否为空、email是否正确等。比如使用下
 

织梦CMS 自定义表单 。

1.前台提交数据过滤

前台数据过滤主要针对普通用户,在HTML层面,通过Js方式,对提交的数据进行校验。如判断表单是否为空、email是否正确等。比如使用下面的Js代码来验证提交的内容是否为空:

<script type="text/javascript">

function check(){

var fankui=document.getElementById('fankui');

var names=document.getElementById('names');

if(fankui.value.length==0){

alert("反馈内容不能为空");

fankui.value="";

fankui.focus();

return false;

}

if(names.value.length==0){

alert("姓名不能为空");

names.value="";

names.focus();

return false;

}

}

</script>

这是很简单的验证方案,一般情况下使用这个验证就足够了,但修改后依然会被垃圾信息骚扰,而上面的JS也仅仅是判断是否为空,表单也特别简单,随便填写几个数值就能够通过。

所以建议采用一些别的成熟的表单验证插件,如一款jquery表单验证插件Validform,可以实现更加强大的验证功能等,如是否提交的email、手机等信息。

当然,这个只是前台界面的数据验证,只能防范一些不懂网站设计的用户,稍微懂些网站知识的用户,就可以绕开前台直接向系统提交数据,这就需要在提交的PHP文件中进行相应的数据校验了。
 

2.PHP提交数据过滤

织梦DedeCMS的自定义表单提交PHP文件是plus下的diy.php文件,所以对提交数据的校验也在这个文件中进行。比如校验用户提交的某个字段是否是手机号、email等。这种校验的办法是利用正则表达式的方式,检测手机号码和email,修改plus下的diy.php,再提交入库的代码前插入下面代码:

//判断手机号码是否正确

if(!eregi("^((13[0-9])|147|(15[0-35-9])|180|182|(18[5-9]))[0-9]{8}$",$telphone))

{

 showMsg('手机号码不对,请正确填写', '-1');

 exit();

}

//验证email

if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$",$邮箱)) {

showMsg('请您填写正确的E-Mail 地址!', '-1');

exit();

}

其中的 $telphone和$邮箱就是提交的手机号码和email值名,如果不是我设定的可以自行修改。所以这里使用的正则表达式是否正确就特别重要了,不正确的正则表达式,会造成垃圾信息提交或者正常的信息无法提交等后果 。
 

3.PHP限制用户提交次数

解决以上两个问题之后,还有一个问题,就是某些用户有意或者无意的提交了多次表单,这也会给信息收集工作带来巨大的压力,所以我们也要努力地降低这个方面的工作量。

我们可以采用验证Cookies办法,达到织梦DedeCMS自定义表单限制IP24小时只能发布一次功能。
 

实现办法是,打开plus下diy.php文件找到以下代码:

if(!is_array($diyform))

        {

            showmsg('自定义表单不存在', '-1');

            exit();

        }

 

 

再其下添加下面的代码:

if(isset($_COOKIE['VOTE_MEMBER_IP']))

{

if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR'])

{

     ShowMsg('您已经填写过表单啦','-1');

     exit();

     } 

     else

     {

     setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

     }

    } 

    else 

    {

     setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

    }

当然,经过以上的操作,织梦DedeCMS的自定义表单并不是就完全的安全了,别人还可以清空Cookies的方式继续重复提交,不过这些就不需要考虑那么多了,毕竟道高一尺魔高一丈,不可能百分百完美的。

郑州融科网络专注于企业网站建设、网站制作、高端网站设计,郑州荥阳、上街做网站就找融科网络!
本文章网址:http://www.ppssdd.com/code/14085.html。转载请保留出处,谢谢合作!

全网(营销型+响应式)专业定制

快速搭建高询盘+营销独立站

微信扫一扫 添加微信

推荐分享,免费SEO诊断

扫码加好友,即送价值1880元的SEO优化教程

(网站没排名,轻松让关键词上首页!专注H5企业建站+网站优化推广)

上一篇:织梦CMS v5.7自定义字段 图片 调用不出

下一篇:织梦问答将FCK编辑器更换为baidu编辑器

  • 网站建设咨询
  • 网站建设案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 151-3895-5886
  • 品牌网站建设定制
  • 营销型网站建设定制