小李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相关文章阅读
  • 织梦cms网站安全设置防挂马教程

    小李网络公司介绍织梦cms网站安全设置防挂马教程知识,包括网站被挂马安全设置怎么关闭怎么给别人网站挂马怎样修改浏览器的安全设置进门对面挂马is安全设置卧室能不能挂马修改ie安全设置...

  • 织梦cms安装出现Function ereg_replace()错误的解决方法

    小李网络公司介绍织梦cms安装出现Function ereg_replace()错误的解决方法知识,包括replace中文解析错误怎么恢复安装应用安装失败怎么解决replace用法python replace用法replace是什么意思啊安装包损坏无法...

  • 织梦cms调用仿百度ask问答的问题SQL语句

    小李网络公司介绍织梦cms调用仿百度ask问答的问题SQL语句知识,包括dedecms调用网站c语言六种基本语句织梦调用代码调用语句中实参的个数织梦常用调用标签函数调用语句实参个数函数fun的调用语...

  • 织梦cms调用DISCUZ论坛置顶贴子版块名称

    小李网络公司介绍织梦cms调用DISCUZ论坛置顶贴子版块名称知识,包括织梦常用调用标签织梦相关文章调用dedecms调用教程织梦首页调用描述dedecms怎么调用dedecms调用商品tagdedecms调用会员织梦自定义...

  • 织梦cms添加并引入php文件教程

    小李网络公司介绍织梦cms添加并引入php文件教程知识,包括php引入文件的四个方法php文件如何导入php引入类文件大php网页文件如何导入html页面引入php文件php引入文件html引入php文件html通过js调用...

  • 织梦cms手机站m目录启用二级域名方法

    小李网络公司介绍织梦cms手机站m目录启用二级域名知识,包括dedecms织梦手机站m目录启用二级域名方法_织梦58,织梦cms建站教程域名解析到二级目录织梦 建站dedecms织梦系统nginx二级域名织梦目录添...

  • 织梦cms网站logo图更滑教程

    小李网络公司介绍织梦cms网站logo图更滑教程知识,包括织梦模板首页logo修改dedecmsslogo修改dedecms更换轮播图dedecms更改模板织梦更换模板dedecms更换banner如何更换织梦主页dedecms界面更换....

  • 织梦cms更换百度编辑器方法

    小李网络公司介绍织梦cms更换百度编辑器知识.包括百度文库源码dedecms仿百度织梦整合百度网盘插件dedecms仿百度文库dedecms换图标dedecms仿百度商桥百度dedecms搭建百度dedecms插件....

  • 织梦cms模板不支持PHP函数file_exists

    小李网络公司介绍织梦cms模板不支持PHP函数file_exists知识,包括file exists错误file的exists方法fileexists什么意思file existsexefilenotexistsphp file_existsalready existsexists用法sql exists indatabase exists....

  • 织梦cms相关文章中实现orderby参数排列的方法

    小李网络公司介绍织梦cms相关文章中实现orderby参数排列知识,包括orderby怎么用dedecms标签怎么用织梦dedecms插件dedecms 源码解析dedecms生成dedecms在线演示dedecms 织梦dedecms自己的模板....

  • 织梦cms首页文章列表实现按照digg数量排序方法

    小李网络公司介绍织梦cms首页文章列表实现按照digg数量排序知识,包括DEDE首页文章列表实现按照digg数量排序方法 - 织梦学习网,digg是什么意思diggcom是什么牌子diggcom工控机gold digger文章列表样式...

  • 织梦cms编辑器不能保存word文档样式问题

    小李网络公司介绍织梦cms编辑器不能保存word文档样式知识,包括解决dede编辑器不能保存word文档样式问题_织梦58,dede编辑器在哪里分页标签dededede手机分页样式dede翻页标签样式dede网站样式修改d...

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