ThinkPHP框架表单验证
ThinkPHP框架的表单验证分为静态验证和动态验证。
静态验证:
首先在Model文件下建立一个表的模型,验证哪个表就键哪个表的模型。如验证users表,则建立textModel.class.php的文件。
定义一个textModel类,继承父类Model
在类里面添加二维数组,数组里存放验证条件。条件格式为:
array(
array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),
array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),
......
);
具体的验证条件可以再php手册中查询。
namespace Home\Model; use Think\Controller; class textModel extends Model { array( array("users","require","用户名不能为空"), //验证用户名是否为空 array("age","","用户名已存在",1,"unique"), //验证是否存在 array("pwd","pwd1","两次输入密码不一致",1,"confirm"), //验证两次输入是否相等。 array("age","18,15","年龄必须在18到50之间",1,"between"), //验证在某个范围之内。 array("email","email","邮箱格式输入不正确") //验证格式是否正确 ); }
然后就可以在控制器中验证并调取错误信息
1 namespace Home\Controller; 2 use Think\Controller; 3 class ZhuCeController extends Controller 4 { 5 function ZhuCe() 6 { 7 if(empty($_POST)) 8 { 9 $this->display(); 10 } 11 else 12 { 13 $model = new \Home\Model\testModel(); //创建模型 14 if(!$model->create()) //判断是否成功创建表单 15 { 16 //失败的输出错误信息 17 $e = $model->getError(); 18 $this->error($e); 19 } 20 else 21 { 22 $model->add(); 23 } 24 } 25 } 26 }
动态验证:
动态验证直接在控制器里创建一个二维数组,将验证条件放在里面,然后用model调用里面的validate方法,将条件作为一个参数放在里面进行验证。
namespace Home\Controller; use Think\Controller; class ZhuCeController extends Controller { function ZhuCe() { if(empty($_POST)) { $this->display(); } else { $model = new \Home\Model\testModel(); $rules = array( array('uid','require','用户名不能为空'), ) if(!$model->validate($rules)->create()) { echo $model->getError(); } } } }