thinkPHP中create自动验证方法

本文详细介绍了ThinkPHP框架中create方法的自动验证功能,包括在Model、Controller及视图层的应用,帮助开发者理解如何在不同场景下进行数据验证,确保数据安全。
摘要由CSDN通过智能技术生成

对应模块的model中:

<?php
    namespace Admin\Model;
    use Think\Model;
    class UserModel extends Model{									// UserModel对应user表
        protected $patchValidate=true;								//批量提示错误
        //自动检测
        protected $_validate=array(
         	array('username','checkName','用户名必须是4-8位且第一位为字母或者下划线',0,'function'), //自定义函数验证,在common里
            array('username','require','用户名必须填写!'), 			//默认情况下用正则进行验证
            array('username','','用户名称已经存在!',0,'unique',1),	//在新增的时候验证字段是否唯一
            array('password','checkPwd','密码长度必须为6-18个字符且第一位为字母',0,'function'), //自定义函数验证
            array('password','require','密码必须填写!'), 
            array('repwd','pwd','两次密码不一致',0,'confirm'), 		//验证确认密码是否和密码一致
            array('nickname','nickName','昵称长度必须为6-12个字符',0,'function'), //自定义函数验证
            array('nickname','require','昵称必须填写!'),
            array('tel','/^1[3|4|5|7|8|9|]\d{9}$/','手机号码格式不正确而且必须是11位数字',0,'regex'),
            array('tel','','手机号码已存在!',0,'unique',1),			//在新增的时候验证字段是否唯一
            array('email','email','邮箱格式不正确',0),    
            array('email','','邮箱已经存在!',0,'unique',1),			//在新增的时候验证字段是否唯一
     	);
        //自动完成给密码加密
        protected $_auto=array( 
            array('pwd','md5',3,'function'), 						//对pwd字段在新增和编辑的时候使md5函数处理
        );
    }
?>

对应function中:

//用户名检测
function checkName($username){
    if(!preg_match('/^[a-zA-Z_]{1}\w{3,7}$/', $username)){
        return false;
    }else{
        return true;
    }
}
//密码检测
function checkPwd($password){
    if(!preg_match('/^[a-zA-Z]{1}\w{5,17}$/', $password)){
        return false;
    }else{
        return true;
    }
}
//昵称检测
function nickName($nickname){
    if(!preg_match('/^\S{6,12}$/', $nickname)){
        return false;
    }else{
        return true;
    }
}

对应controller中:

public function user_modi_check(){
	$user=D('user');
	if(!$user->create($_POST,1)){									//未注册成功,即验证失败,输出错误提示,只在新增时验证为1的规则
		foreach($user->getError() as $val){
		    $this->error($val);
		}
	}
}

对应HTML中:

<form method="post" action="{:U('index/user_modi_check')}" enctype="multipart/form-data" "return checkThis()">
	<input name="id" type="hidden" id="id" value="{$rel['id']}" />	//name的值必须与对应表的字段名相同
</form>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值