PHP 自动验证

ThinkPHP 自动验证格式如下:


array(验证字段,验证规则,错误提示[,验证条件][,附加规则][,验证时间])


项目实例:


<span style="font-family:Microsoft YaHei;font-size:18px;">class MemberModel extends Model{
	
	protected $_validate = array(
	    array('uname','require','用户名不能为空!'), //默认情况下用正则进行验证
	    array('uname','','用户名已存在!',0,'unique',1),
	    array('cityid','require','请选择城市!'),
	    array('password','require','密码不能为空!'),
	    array('email','require','Email不能为空!'),
	    array('email','','Email已存在!',0,'unique',1),
	  //  array('newpassword','repassword','确认密码不正确',0,'confirm'), // 验证确认密码是否和新密码一致
	  //  array('wechat','require','微信ID不能为空!'),
	    array("uname","0,300","用户名内容长度超过300个字符",1,"length"),
	    array("password","0,300","密码内容长度超过300个字符",1,"length"),
	    array("微信ID","0,300","微信ID内容长度超过300个字符",1,"length"),
	    array("email","0,300","Email内容长度超过300个字符",1,"length"),
	    array('nickname','require','姓名不能为空!'),
	    array("nickname","0,300","姓名内容长度超过300个字符",1,"length"),
	);
}</span>



model层

基本的自动验证有这些:


<span style="font-family:Microsoft YaHei;">//自动验证
    protected $_validate = array (
        array('name', 'require', '姓名不能为空!', 1, '', 3),
        array('tel', 'require', '手机号不能为空!', 1, '', 3),
        array('password', 'require', '密码不能为空!', 1, '', 1),
        array('email', 'require', '邮箱不能为空!', 1, '', 3),
        array('ID_number', 'require', '身份证号不能为空!', 1, '', 3),
        array('ID_positive', 'require', '身份证正面照不能为空!', 1, '', 1),
        array('ID_opposite', 'require', '身份证反面照不能为空!', 1, '', 1),
        array('ID_handle', 'require', '手持身份证照不能为空!', 1, '', 1),
        array('bankcard', 'require', '银行卡照片不能为空!', 1, '', 1),
        array('openbank', 'require', '开户行不能为空!', 1, '', 3),
        array('accountname', 'require', '银行账户名不能为空!', 1, '', 3),
        array('bankaccount', 'require', '银行账户号不能为空!', 1, '', 3),
        array('tel', '/^\d{11}$/', '手机号不合法!', 1, 'regex', 3),
        array('email', 'email', '邮箱不合法!', 1, '', 3),
        array('ID_number', '/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/', '身份证号不合法!', 1, 'regex', 3),
        array('tel', '', '手机号已经存在!', 1, 'unique', 3), // 新增修改时候验证tel字段是否唯一
        array('email', '', '邮箱已经存在!', 1, 'unique', 3), // email唯一
        array('ID_number', '', '身份证号已经存在!', 1, 'unique', 3), // 身份证号唯一
    );</span>

说明:


说明,只要定义了Model,在任何地方调用,都会进行验证。很方便。

必须是D方法,才会有效。M方法不会触发自动验证。

$column=D("column");  //好用

$column=M("column"); //不好用

1.安装 上传源码到网站目录,设置网站目录为源码二级目录public,很多虚拟主机不支持此设置 伪静态,源码默认包含了apache的伪静态规则,但很多情况下还需要自己设置,请百度对应对应的设置方法,例如Nginx thinkphp5伪静态设置,如果您使用的宝塔,那么在网站伪静态里面设置一下即可。如果伪静态没有设置好,会出现资源文件找不到,图片脚本等都404等情况。 2.配置 由于前期准备写给自己用的,偷懒了很多情况,一些配置直接写在\application\config.php中,所有请打开文件修改配置 3.邮箱服务器配置,注册,找回密码,购卡等操作需要用到邮箱发信 请在配置文件中找到mail节点设置smtp服务器账号和密码 如 'mail' => [ 'server'=>'smtp.qq.com', 'acount' => 'q214783030@qq.com', 'password' => '' 密码不是qq密码 ] 4.此版本更新安全,有用到openssl的rsa加密。需要配置openssl.cnf的路径,请在配置文件中修改 如:'opensslConf'=> 'D:\BtSoft\WebSoft\apache\conf\openssl.cnf' 此文件一般在你的apache配置文件夹中 5.支付,如果您想使用验证自动发卡功能,官方默认支持两种对接方式 1.微信原生支付,需要签约商户,微信支付配置文件vendor/wxpay/WxPay.Config.php 绑定支付的APPIDGet AppId() 商户号 GetMerchantId()商户支付密钥 GetKey() 2.码支付,默认qq和支付宝使用码支付对接,需要挂监听软件,码支付官网https://codepay.fateqq.com/ 6.开启Workerman,这是一个socket库,这次的版本添加了websocket心跳方式,开启的好处是即时心跳,比如秒t下线,即时消息,群发消息,另外带个定时器,每个6分钟自动执行一次清理异常掉线未发退出登录通知服务器的用户,如果不开启,会出现很多麻烦,使用方法,双击打开源码目录下的start_for_win.bat,并保持cmd窗口打开,此功能仅在windows下测试过,linux大同小异主要执行php start_register.php start_gateway.php start_businessworker.php 如果正常运行您可以看到3个工作ok yzGateway Register yzBusinessWorker,可能出现的问题,找不到php命令,把php.exe加入到环境变量即可,如果使用websocket心跳的话,单机最大可能只有1000左右连接 7.必须开启openssl扩展 安装可能出现的问题 1.数据库连接不上,如果您确认数据库账号密码是正确的却连接不上,可以手动导入sql文件,文件路径/public/install/test.sql,导入成功后需要在application/database.php中配置您的库信息 2.安装时候环境监测有可能有点问题,不想整了,自己确定就行 遇到其它问题加群 365011408 提问即可 遇到返回数据未解密,用模块源码取调试 调用例子群文件获取,官网对接看这里 必须要开启Workerman 心跳处理,2种心跳方式,一种web定时心跳,一种socket主动发送
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值