小李SEO博客

网站优化服务

dedecms自定义表单中添加验证码方法

织梦dedecms网站给自定义表单加dede模板自带验证码的方法。有时候,我们因为需要给dede网站的自定义表单添加验证码,防止恶意填写表单提交。我们可以用以下的方法来实现:

首先,我们要找到/plus/diy.php这个文件在头部引入文件:require_once(DEDEINC.'/membermodel.cls.php');然后找到elseif($do==2){在这个地方加入代码块//验证码验证$svali=GetCkVdValue();if(preg_match("/1/",$safe_gdopen)){if(strtolower($vdcode)!=$svali||$svali==''){ResetVdValue();ShowMsg('验证码错误!','-1');exit();}}修改好后保存一下文件。

第二步:在使用验证码的自定义表单静态页面中插入代码块<inputtype="text"class="intxtw200"style="width:50px;text-transform:uppercase;"id="vdcode"name="vdcode"class="code"/><imgid="vdimgck"align="absmiddle"onclick="this.src=this.src+'?'"style="cursor:pointer;"alt="看不清?点击更换"src="/include/vdimgck.php"/>看不清?<ahref="javascript:void(0)"onclick="changeAuthCode();">点击更换</a>在这个静态页面里还得引用JQuery再加入JS代码块<scripttype="text/javascript">$=jQuery;functionchangeAuthCode(){varnum=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>

好了,现在试一试,是不是可以实现验证码的提交了?一个简单的dedecms自定义表单dede模板自带验证码的功能就实现了。织梦自定义表单的应用非常方便,不管用在什么地方,收集信息特别方便制作和管理。有如下几个建议,把下拉框和单选按扭在后台做成单行文本,这样的话不管你提交的是下拉框或是单选,都可以有效的接收它的值。如果后台就做成单选或下拉,如果改了默认值,提交的表单值跟后台默认值对不上的话就会出现提交不成功的情况,就是前台提交的时候选择了,但后台看不到数据。若是做成单行文本,提交的值就会以文本的形式写入到后台,表单修改值也更加显得方便了。提交之后会显示织梦的默认提示信息“友情提示”几秒过后就自动转到首页。如何才能让提交的信息停留,并让用户确认所提交的信息。

我想了如下方式。给diy.php里提交成功后输入固定值而不是自带的跳转方法。如下:if($action == 'post'){if(empty($do)){$postform = $diy->getForm(true);include DEDEROOT."/templets/plus/{$diy->postTemplate}";exit();}elseif($do == 2){$dede_fields = empty($dede_fields) ? '' : trim($dede_fields);$dede_fieldshash = empty($dede_fieldshash) ? '' : trim($dede_fieldshash);if(!empty($dede_fields)){if($dede_fieldshash != md5($dede_fields.$cfg_cookie_encode)){showMsg('数据校验不对,程序返回', '-1');exit();}}$diyform = $dsql->getOne("select * from where diyid='$diyid' ");if(!is_array($diyform)){showmsg('自定义表单不存在', '-1');exit();}$addvar = $addvalue = '';if(!empty($dede_fields)){$fieldarr = explode(';', $dede_fields);if(is_array($fieldarr)){foreach($fieldarr as $field){if($field == '') continue;$fieldinfo = explode(',', $field);if($fieldinfo[1] == 'textdata'){${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});}else{${$fieldinfo[0]} = GetFieldValue(${$fieldinfo[0]}, $fieldinfo[1],0,'add','','diy', $fieldinfo[0]);}$addvar .= ', `'.$fieldinfo[0].'`';$addvalue .= ", '".${$fieldinfo[0]}."'";}}}$query = "insert into `{$diy->table}` (`id`, `ifcheck` $addvar) values (NULL, 0 $addvalue); ";if($dsql->executenonequery($query)){$id = $dsql->GetLastID();if($diy->public == 2){//diy.php?action=view&diyid={$diy->diyid}&id=$id$goto = "diy.php?action=list&diyid={$diy->diyid}";$bkmsg = '发布成功,现在转向表单列表页...';}else{$goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';$bkmsg = '发布成功,请等待管理员处理...';}echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ""><html xmlns=""><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><title>订单核对 </title><link href="/img_cnosn/css_end.css" rel="stylesheet" type="text/css" /></head><body><div id="ctent"><h1>您已成功提交订单,请仔细核对你的信息!</h1><ul><script language="javascript">function ReplaceAll(str,sptr,sptr1){while (str.indexOf(sptr) >= 0){ str = str.replace(sptr, sptr1);}return str;}descria=",您的姓名:,联系电话:,送货地址:,购买产品:,支付方式:,订货留言:,b";var descri=new Array();descri=descria.split(",");str= "'.$addvalue.'" ;str=ReplaceAll(str,"'","");var strarray=new Array();strarray=str.split(",") ;for(i=0;i<7;i++){document.write("<li>"+descri[i]+strarray[i]+"</li>");}</script></ul><div class="info">友情提示:您的订单已提交成功,我们的客服会尽快与你取得联系 <a href="#" onclick="window.operner = null;window.open('','_self');window.close();">确认并关闭</a> 或 <a href="#" onclick="window.operner = null;window.open('','_self');window.close();">返回修改</a></div></div></body></html>';}}}上是代码。

这样就是固定提取前几个表单信息给用户确认,不过在后台增加表单的时候一定要统一按以上数组的顺序进行添加字段。这样才能对应。有一个不好的地方是,这个文件只要一改就是针对所有的表单提交,不过这只是一个方法,供参考,最终还得灵活应用。

上一篇:dedecms5.7不能添加二级栏目的解决方法 下一篇:dedecms幻灯片修改方法
织梦cms相关文章阅读
  • 织梦cmsv5.3发布图集时不能获取缩略图的解决办法

    小李网络公司介绍织梦dedecmsv5.3发布图集时不能获取缩略图知识,包括缩略图怎么弄什么叫缩略图缩略图怎么恢复12j1图集图片无缩略图怎么办当没能获取成功时时无暇获取图片显示缩略图如何不...

  • 织梦cms新手教程数据备份

    小李网络公司介绍织梦cms数据备份知识.包括CMS织梦程序如何备份网站数据以及还原备份数据,织梦cms5.7网站数据怎么备份?织梦网站数据备份步骤图解.数据备份的主要方式有哪些?...

  • 织梦cms让likearticle的mytypeid支持多个栏目和子栏目

    小李网络公司介绍织梦cms支持多个栏目和子栏目知识,包括dedecms织梦让likearticle的mytypeid支持多个栏目和子栏目,织梦cms建站教程dedecms好吗织梦dedecms教程织梦默认模板管理dedecms首页织梦cms移动织...

  • 织梦cms调用文章第一张图片非缩略图教程

    小李网络公司介绍织梦cms调用文章第一张图片非缩略图教程知识,包括织梦相关文章调用dedecms调用网站织梦调用代码dedecms代码调用织梦常用调用标签dedecms文章日期dedecms文章代码dedecms生成文章...

  • 织梦cms网站问答伪静态的实现方法

    小李网络公司介绍织梦cms网站问答实现伪静态知识.包括Dedecms(织梦)完美实现伪静态的方法_织梦58,nginx实现伪静态nginx 伪静态PHP伪静态dede改成整站静态aspcms伪静态dedecms模板绑域名伪静态html织梦...

  • 织梦CMS调用网站不同栏目模板教程

    小李seo网络公司介绍织梦cms栏目模板调用知识.包括织梦怎么调用栏目页织梦文章列表调用dedecms栏目代码织梦栏目介绍织梦栏目调用织梦栏目描述调用dedecms栏目页标签....

  • 织梦cms后台点击就卡住解决办法

    小李网络公司介绍织梦cms后台点击就卡住解决办法知识,包括dedecms后台(反应特别慢)点击就卡住的最终解决_AB模板网,织梦手机端加载慢dede首页加载很慢cms加载很慢dedecmscss加载慢....

  • 织梦cms文章标题长度修改方法

    小李网络公司介绍织梦cms文章标题长度修改方法知识,包括dedecms织梦程序怎么修改文章标题长度 - 百度知道,如何修改织梦dedecms文章内容摘要长度字数限制_朗创网络营销,DedeCMS如何修改文章标题...

  • 织梦cms指定栏目和按栏目分类搜索下拉实现方法

    小李网络公司介绍织梦cms指定栏目和按栏目分类搜索下拉知识,包括织梦怎么实现下拉搜索指定栏目功能织梦58.dedecms建立栏目dedecms副栏目调用织梦新建栏目dedecms栏目菜单dedecms左边栏目织梦副栏...

  • 织梦cms安装表前缀教程

    小李网络公司介绍织梦cms安装表前缀教程知识,包括织梦cms建站教程dedecms织梦系统dedecms首页织梦cms移动织梦cms织梦默认模板管理织梦仿站教程织梦内容管理系统是什么织梦帮助文档....

  • 织梦cms统计栏目文章总数sql调用方法

    小李网络公司介绍织梦cms统计栏目文章总数调用方法知识.包括织梦dedeCMS统计栏目文章(软件)总数- dedeCMS教程,DedeCMS 统计栏目的文章总数的调用方法_最火软件站.dedecms栏目页标签 dedecms栏目代码...

  • 织梦cms移动data后网站地图无法生成的解决方法

    小李网络公司介绍织梦cms移动data后网站地图无法生成知识,包括关于DEDECMS移动data后网站地图无法生成的解决方法,网站生成datastudio设置中文界面网站地图怎么生成免费生成网站lammps的data文件输...

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640