本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示:
一、模板部分:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>ThinkPHP示例:表单提交、自动验证和自动填充</TITLE> </HEAD> <BODY> <div class="main"> <FORM METHOD=POST ACTION="__URL__/insert"> <TABLE cellpadding=2 cellspacing=2> <TR> <TD width="12%">标题:</TD> <TD ><INPUT TYPE="text" NAME="title" style="height:23px" class="large bLeft"></TD> </TR> <TR> <TD >邮箱:</TD> <TD ><INPUT TYPE="text" NAME="email" style="height:23px" class="large bLeft"></TD> </TR> <TR> <TD>内容:</TD> <TD><TEXTAREA NAME="content" class="large bLeft" ROWS="8" COLS="25"></TEXTAREA></TD> </TR> <TR> <TD>验证码:</TD> <TD><INPUT TYPE="text" NAME="verify" style="height:23px" class="small" > <img src="__URL__/verify" align="absmiddle" /> 输入对应的数字</TD> </TR> <TR> <TD></TD> <TD><INPUT TYPE="submit" class="button" value="提 交"> <INPUT TYPE="reset" class="button" value="清 空"></TD> </TR> <TR> <TD></TD> <TD ><HR></TD> </TR> <volist name="list" id="vo"> <TR> <TD></TD> <TD style="border-bottom:1px dotted silver">{$vo.title} <span style="color:gray">[{$vo.email} {$vo.create_time|date='Y-m-d H:i:s',###}]</span></TD> </TR> <TR > <TD></TD> <TD ><div class="content">{$vo.content|nl2br}</div></TD> </TR> </volist> </TABLE> </FORM> </div> </BODY> </HTML>
二、模型部分form类程序代码:
<?php class FormModel extends Model { // 自动验证设置 protected $_validate = array(//这里必须定义为$_validata用来验证 array('title','require','标题必须!',1), array('email','email','邮箱格式错误!',2), array('content','require','内容必须'), array('verify','require','验证码必须!'), array('verify','CheckVerify','验证码错误',0,'callback'),//callback 使用方法验证,前面定义的验证规则是一个当前 Model 类的方法 //这里如果有不太理解的话可以看本类的最后一个方法 array('title','','标题已经存在',0,'unique','add'),//附加验证unique,unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值 ); /*think的验证机制,省去了不少麻烦非空:equire 邮箱:email 验证码正确:CheckVerify array()数组内容array(验证字段,验证规则,错误提示,验证条件,附加规则,验证时间) 验证条件 EXISTS_TO_VAILIDATE 或者 0 存在字段就验证 (默认) MUST_TO_VALIDATE 或者1 必须验证 VALUE_TO_VAILIDATE 或者 2 值不为空的时候验证 附加规则 配合验证规则使用,包括: function 使用函数验证,前面定义的验证规则是一个函数名 callback 使用方法验证,前面定义的验证规则是一个当前 Model 类的方法 confirm 验证表单中的两个字段是否相同,前面定义的验证规则是一个字段名 equal 验证是否等于某个值,该值由前面的验证规则定义 in 验证是否在某个范围内,前面定义的验证规则必须是一个数组 unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值 regex 使用正则进行验证,表示前面定义的验证规则是一个正则表达式(默认) */ // 自动填充设置 //由上面推导,下面这个是自动填充字段了,方便明了 protected $_auto = array(//同样这里必须定义为$_auto array('status','1','ADD'), array('create_time','time','ADD','function'),//这里指明填充使用函数time() ); /* 数组因子: array(填充字段,填充内容,填充条件,附加规则) 填充条件包括: ADD 新增数据的时候处理(默认方式) Update 更新数据的时候处理 ALL 所有情况下都进行处理 附加规则包括: function 使用函数 callback 回调方法 field 用其它字段填充 string 字符串(默认方式) */ public function CheckVerify() { return md5($_POST['verify']) == $_SESSION['verify']; } } ?>
三、控制器部分indexaction类程序代码:
<?php class IndexAction extends Action{ // 首页 public function index(){ $Form = D("Form");//创建一个对象 $list = $Form->top6('','*','id desc');//从数据库中读取最新6条记录,并且安id倒序输出 $this->assign('list',$list);//把数据传到模板里 $this->display(); } // 处理表单数据 public function insert() {//此方法对应表单的ACTION="__URL__/insert" $Form = D("Form"); if($Form->create()) {//创建 Form 数据对象,默认通过表单提交的数据进行创建,为下面写入数据库做准备 $Form->add();// 新增表单提交的数据 ,吧上面创建的数据对象提交 $this->redirect();//返回上一个模块,页面跳转可以说是 }else{ header("Content-Type:text/html; charset=utf-8"); exit($Form->getError().' [ <A href="javascript:history.back()" rel="external nofollow" >返 回</A> ]'); } } // 生成验证码 //这个方法没什么好说的,固定格式 public function verify() { import("ORG.Util.Image"); Image::buildImageVerify(); //这里两个冒号是调用静态方法 } } ?>
本文向大家介绍ThinkPHP表单自动验证实例,包括了ThinkPHP表单自动验证实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP表单自动验证的实现方法。分享给大家供大家参考。具体方法如下: 该示例代码采用TP 3.2框架实现。具体代码如下: 其中的验证规则也可以写到模型里,但笔者感觉有些麻烦,一是有时候不同页面验证的方式会不一样,二是看到这个add_post事件里的代
本文向大家介绍ThinkPHP 表单自动验证运用示例,包括了ThinkPHP 表单自动验证运用示例的使用技巧和注意事项,需要的朋友参考一下 使用TP 3.2框架 验证规则也可以写到模型里,但我感觉有些麻烦,一是有时候不同页面验证的方式会不一样,二是看到这个add_post事件里的代码,就清楚要接收什么数据,如何验证数据能够在第一眼有个大致了解,所以总结出了此方式。
本文向大家介绍ThinkPHP验证码和分页实例教程,包括了ThinkPHP验证码和分页实例教程的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ThinkPHP常用的两个功能:验证码与分页。在ThinkPHP的项目开发中非常常见,具有很高的实用价值。完整实例分享给大家,供大家参考。具体如下: 一、验证码: 导入验证码类,在aoli\ThinkPHP\Lib\ORG\Util\Image.cl
本文向大家介绍Python 自动化表单提交实例代码,包括了Python 自动化表单提交实例代码的使用技巧和注意事项,需要的朋友参考一下 今天以一个表单的自动提交,来进一步学习selenium的用法 练习目标 0)运用selenium启动firefox并载入指定页面(这部分可查看本人文章 http://www.cnblogs.com/liu2008hz/p/6958126.html) 1)页
本文向大家介绍AngularJS实现表单手动验证和表单自动验证,包括了AngularJS实现表单手动验证和表单自动验证的使用技巧和注意事项,需要的朋友参考一下 AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证。 一、手动验证 所谓手动验证是通过AngularJS表单的属性来验证。而成为AngularJS表单必须满足两个条件: 1、给form元素加上novalidate="no
本文向大家介绍jQuery EasyUI提交表单验证,包括了jQuery EasyUI提交表单验证的使用技巧和注意事项,需要的朋友参考一下 EasyUI的form表单里面的验证框,先讲解下validatebox类和相关的属性。 验证规则 验证规则是通过使用 required 和 validType 特性来定义的, 这里是已经实施的规则: email:匹配 email 正则表达式规则,系统提供的属性