解决dedecms自定义表单数据校验不对的办法

般,我们不会用dedecms自带的表单在页面上操作,用的更多的是自定义表单,常用post方式来提交数据。

但是有时候我们自定义表单提交的时候常出现错误:

我们以下几点去检查程序文件:

1:/plus/diy.php 文件是否存在,是否对应。

2::

1
<input name='sex' id='sex' type="text" />

name,id,type,是否和后台自定义表单对应。

3:value值是否和后台自定义表单一直,如果不一直,就复制前台预览中的代码。

4: 这段代码后面的value值是唯一,每个网站有单独的value值,所以也需要复制前台预览的网址代码值。

解决办法:

1:
plus/diy.php文件是否存在,是否对应。
2:

<input name='sex' id='sex' type="text" class="ipt" style="WIDTH: 399px"/>
name,id,type,是否和后台自定义表单对应。

3:
value值是否和后台自定义表单一致,如果不一致,就复制前台预览的网址代码。

4:
这段代码后面的value值是唯一,每个网站有单独的value值,所以也需要复制前台预览的网址代码值。

解决办法二

春哥提示去检查一下几个程序文件:

1:/plus/diy.php 文件是否存在,是否对应。
2::<input  name='sex' id='sex' type="text" />  name,id,type,是否和后台自定义表单对应。
3:value值是否和后台自定义表单一致,如果不一直,就复制前台预览中的代码。
4:代码后面的value值是唯一,每个网站有单独的value值,所以也需要复制前台预览的网址代码值。

解决办法:

1:<form action="/plus/diy.php" enctype="multipart/form-data" method="post">
plus/diy.php文件是否存在,是否对应。
2:<input name='sex' id='sex' type="text" class="ipt" style="WIDTH: 399px"/>
name,id,type,是否和后台自定义表单对应。
3:<input type="hidden" name="dede_fields" value="name,text;sex,radio;tel,text;pro,select;dizhi,text;note,htmltext;mail,text" />
value值是否和后台自定义表单一致,如果不一致,就复制前台预览的网址代码。
4: <input type="hidden" name="dede_fieldshash" value="5b6ddc6659f6278add0ebd009229f7cb" />
这段代码后面的value值是唯一,每个网站有单独的value值,所以也需要复制前台预览的网址代码值。

value值查找办法:

<input type="hidden" name="dede_fieldshash" value="33a0260e10c5209c22d60e6cb3e8befa" />

就是里面的那个value="33a0260e10c5209c22d60e6cb3e8befa",这个值有问题。

在自定义表单增加网所有字段后,点击“前台预览”——>点“发布信息”——>查看页面源文件,就能看到一个完整的form表单,将它拷贝出来。
这里面就有那个value值,这里便是正确的了,覆盖掉代码里的那个就可以了,在提交表单就再也没有错误提示了,成功提交预订了。
而且这个字,你如果修改了自定义表单中的字段类型或者增加字段什么的,都会发生变化。那你就都要到前台预览中获取源码中的这个hash值。

时间: 2024-07-29 14:26:35

解决dedecms自定义表单数据校验不对的办法的相关文章

解决Dedecms自定义表单&quot;数据校验不对,程序返回&quot;错误

前几天给一个网站重装了DEDECMS系统,当时没有注意到表单这一块.今天来上班的时候同事跟新一反应了这个情况 由于自定义表单模板是也是DIY的.就跟着官方模板中的数据进行比较.测试得知,官方的模板中可以正常提交.也在比对中发现INPUT的参数dede_fieldshash的值不是一样子的.随即新一跟踪到/plus/diy.php    代码如下 复制代码 $dede_fields = empty($dede_fields) ? '' : trim($dede_fields); $dede_fie

DEDECMS自定义表单unix时间戳转换成常规时间方法及增加表单添加时间方法

DEDECMS自定义表单提交的时间给转换成unix时间戳(一段数字),我们管理员在后台需要看到是日期,而不是那一行数字,下面方法可以解决这个问题,dedecms 5.6和5.7都可以,打开dede/templets/diy_list.htm,在42行左右( 其它附件</a>";}下一行),再加一个IF判断,代码如下: else if($fielddata[1]=='datetime') { $fields[$field] = GetDateMk($fields[$field]); }

在Struts 2.0中实现表单数据校验(Validation)

在写前几篇文章的时候,有些朋友建议我的写一篇关于表单数据校验的文章. 正如文章的开头所引用的<Writing Secure Code>的名言:"所有的输入都是罪恶的",所以我们应该对所有的外部输入进行校验.而表单是应用程序最简单的入口,对其传进来的数据,我们必须进行校验. 转换与校验(Conversion & Validation) 其实上篇文章,我本来是打算写表单数据校验的内容,但是经过再三思考后,还是决定先写Struts 2.0转换器的内容.原因是我认为转换是校

DEDECMS自定义表单提交后的跳转页面的教程

本文实例讲述了DEDECMS自定义表单提交后的跳转链接修改方法.分享给大家供大家参考.具体实现方法如下: 自定义表单,点击提交后,默认跳转到首页,我们打开plus/diy.php,里面有这样一段代码 if($dsql->executenonequery($query)) { $id = $dsql->GetLastID(); if($diy->public == 2) { //diy.php?action=view&diyid={$diy->diyid}&id=$i

用dedecms自定义表单创建简易自助预约系统

建站往往需要根据客户的需求来增加相应的功能,比如预约.平时用比较多的是织梦系统,那么如何用dedecms自定义表单创建简易自助预约系统呢? 进入dedecms后台,左侧菜单中依次点击"核心" - 频道类型 - 自定义表单 - [增加新的自定义表单] 点击后进入设置模版界面,这里可以不用动直接点击确定.当然名字那里可以修改成"预约". 点击上图中 "管理" 下的铅笔图标进行编辑 进入界面后我们可以通过添加新的字段来设置我们需要的栏目比如我们可以创建

如何设置dedecms自定义表单必填项?

用dedecms自定义表单可以制作一个简单的预约系统,有些相关信息需要设置为必填项,比如联系方式,没有留下真实的电话或其他信息,以后要怎么联系到你的客户.那我们要如何设置织梦cms自定义表单必填项呢?随ytkah一起试试吧 一.先用一段php代码来判断验证码为必选项.找到文件plus/diy.php文件中的第40行左右加上以下代码: //增加必填字段判断 if($required!=''){if(preg_match('/,/', $required)){$requireds = explode

dedecms自定义表单提交成功后提示信息修改和跳转链接修改

我们在用dedecms自定义表单提交成功后提示信息一般是"Dedecms 提示信息",这个要怎么改成自己想要的文字呢?还有就是提示页停留时间,目前估计就2秒,太快了,要如何设置长点呢?通过下面我们就来一起修改一下 打开/include/common.func.php,大概在266行,改成自己的想要的文字,比如"您已经注册成功". 自动跳转时间设为20秒,大概在237行,数字改为20000,如下面代码中的红色部分 $litime = ($limittime==0 ?

dedecms自定义表单增加验证码教程

在很多建站需求中,需要一些额外的表单供前台用户提交.以便于收集.统计.分析及处理更多的数据.比如:在线订单.在线报名等一些常见的互动应用. 利用织梦内容管理系统(DedeCMS)自带提供的自定义表单功能即可满足大多数的此类需求. 通过给自定义表单加入验证码的功能,可以防止一些用户恶意提交. 1.先进入DedeCMS后台生成自定义表单. 2.在自定义表单模板中添加验证码代码,如下:  代码如下 复制代码  <input name="validate" type="text

织梦dedecms自定义表单中字段设置为必填项方法

方法一,修改dedecms源码 下面这段段php代码是用来判断验证必选项的: 1.我们先在plus/diy.php 文件中的的第40行下加上一下代码  代码如下 复制代码  //增加必填字段判断 if($required!=''){ if(preg_match('/,/', $required))     {         $requireds = explode(',',$required);         foreach($requireds as $field){