当前位置:Gxlcms > PHP教程 > ThinkPHP表单自动提交验证实例教程_php实例

ThinkPHP表单自动提交验证实例教程_php实例

时间:2021-07-01 10:21:17 帮助过:19人阅读

本文以实例讲述了ThinkPHP表单自动提交验证的实现过程,详细步骤如下所示:

一、模板部分:





ThinkPHP示例:表单提交、自动验证和自动填充








二、模型部分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().' [ 返 回 ]'); } } // 生成验证码 //这个方法没什么好说的,固定格式 public function verify() { import("ORG.Util.Image"); Image::buildImageVerify(); //这里两个冒号是调用静态方法 } } ?>

人气教程排行