
正文
php数据验证规则 php表单数据验证
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
thinkphp开启自动验证后无法连接数据库
thinkphp自动验证
array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])
1.验证字段
需要验证php数据验证规则的表单字段名称php数据验证规则,这个字段不一定是数据库字段php数据验证规则,也可以是表单的一些辅助字段php数据验证规则,例如确认密码和验证码等等。有个别验证规则和字段无关的情况下,验证字段是可以随意设置的,例如expire有效期规则是和表单字段无关的。
2.验证规则
要进行验证的规则,需要结合附加规则,如果在使用正则验证的附加规则情况下,系统还内置了一些常用正则验证的规则,可以直接作为验证规则使用,包括:require 字段必须、email 邮箱、url URL地址、currency 货币、number 数字。
3.错误提示
用于验证失败后的提示信息定义
4.验证条件
包含下面几种情况:
Model::EXISTS_VALIDATE 或者0 存在字段就验证 (默认)
Model::MUST_VALIDATE 或者1 必须验证
Model::VALUE_VALIDATE或者2 值不为空的时候验证
5.附加规则
配合验证规则使用,包括下面一些规则:
regex 正则验证,定义的验证规则是一个正则表达式(默认)
function函数验证,定义的验证规则是一个函数名
callback方法验证,定义的验证规则是当前模型类的一个方法
confirm验证表单中的两个字段是否相同,定义的验证规则是一个字段名
equal 验证是否等于某个值,该值由前面的验证规则定义
in验证是否在某个范围内,定义的验证规则必须是一个数组
length验证长度,定义的验证规则可以是一个数字(表示固定长度)或者数字范围(例如3,12 表示长度从3到12的范围)
between验证范围,定义的验证规则表示范围,可以使用字符串或者数组,例如1,31或者array(1,31)
expire验证是否在有效期,定义的验证规则表示时间范围,可以到时间,例如可以使用 2012-1-15,2013-1-15 表示当前提交有效期在2012-1-15到2013-1-15之间,也可以使用时间戳定义
ip_allow 验证IP是否允许,定义的验证规则表示允许的IP地址列表,用逗号分隔,例如 201.12.2.5,201.12.2.6
ip_deny 验证IP是否禁止,定义的验证规则表示禁止的ip地址列表,用逗号分隔,例如201.12.2.5,201.12.2.6
unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值。
6.验证时间
Model:: MODEL_INSERT 或者1新增数据时候验证
Model:: MODEL_UPDATE 或者2编辑数据时候验证
Model:: MODEL_BOTH 或者3 全部情况下验证(默认)
相关问答
Q1: php怎样验证表单文本区域内容是否已存在数据库中?
方法:查询数据,若数据存在则输出(前端这个要自己写,我只写了一个echo)
代码如下:
//$conn = new mysqli($sql_server_name, $sql_username, $sql_password, $sql_db);
$timu = $_GET["timu"];
$sql = $conn-query("查询 * from problems where timu
='". $timu . "'"); // 从problems库里查 注意把“查询”改成“select”,因为百度知道会屏蔽sql语句
if (mysqli_fetch_assoc($sql) 0) {
echo "已存在";
} else {
echo "不存在";
}
Q2: thinkphp3.2自动完成和自动验证同时进行
Thinkphpphp数据验证规则的自动验证和自动完成都是根所表单提交的内容来的php数据验证规则,对部分数据进行规则验证和处理后插入到数据库。
1、自动验证格式php数据验证规则:
array( array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]), array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]), ...... );
验证条件:
self::EXISTS_VALIDATE 或者0 存在字段就验证(默认)
self::MUST_VALIDATE 或者1 必须验证
self::VALUE_VALIDATE或者2 值不为空的时候验证
验证时间:
self::MODEL_INSERT或者1新增数据时候验证
self::MODEL_UPDATE或者2编辑数据时候验证
self::MODEL_BOTH或者3全部情况下验证(默认)
2、自动完成格式:
?12345 array( array(完成字段1,完成规则,[完成条件,附加规则]), array(完成字段2,完成规则,[完成条件,附加规则]), ...... );
完成时间:
self::MODEL_INSERT或者1 新增数据的时候处理(默认)
self::MODEL_UPDATE或者2 更新数据的时候处理
self::MODEL_BOTH或者3 所有情况都进行处理
小实例(注册)
HTML布局:
form class="form-horizontal" action="{:U('Login/register')}" method="post" autocomplete="off" enctype="multipart/form-data" div class="form-group" label class="col-lg-2 control-label"用户名/label div class="col-lg-4" input class="form-control" type="text" name="username" / /div /div div class="form-group" label class="col-lg-2 control-label"密码/label div class="col-lg-4" input class="form-control" type="password" name="password" / /div /div div class="form-group" label class="col-lg-2 control-label"重复密码/label div class="col-lg-4" input class="form-control" type="password" name="repassword" / /div /div div class="form-group" label class="col-lg-2 control-label"头像/label div class="col-lg-4" input class="form-control" type="file" name="portrait" id="imgpath" / img style="width: 100%;" src="" id="showimgpath" alt="头像"/ span class="help-block"关像的大小为80*80px/span /div /div div class="form-group" label class="col-lg-2 control-label"性别/label div class="col-lg-4" div class="btn-group" data-toggle="buttons" label class="btn btn-default active" input type="radio" name="gender" autocomplete="off" value="1" checked / 男 /label label class="btn btn-default" input type="radio" name="gender" autocomplete="off" value="0" / 女 /label /div /div /div div class="form-group" label class="col-lg-2 control-label"电话号码/label div class="col-lg-4" input class="form-control" type="input" name="phone" / /div /div div class="form-group" label class="col-lg-2 control-label"邮箱/label div class="col-lg-4" input class="form-control" type="input" name="email" / /div /div div class="form-group" div class="col-lg-2 col-lg-offset-2" button class="btn btn-primary btn-block btn-submit" type="submit"注册/button /div /div /form
模型(MemberModel)
?php namespace Admin\Model; use Think\Model; class MemberModel extends Model { /* 自动验证 */ protected $_validate = array( array('username', '', '用户名是唯一的php数据验证规则!', self::EXISTS_VALIDATE, 'unique', self::MODEL_INSERT), array('password', 'require', '没有填写密码php数据验证规则!', self::EXISTS_VALIDATE, '', self::MODEL_INSERT), array('repassword', 'password', '重复密码不正确!', self::EXISTS_VALIDATE, 'confirm', self::MODEL_INSERT), array('phone','11','电话号码长度不对!', self::EXISTS_VALIDATE, 'length', self::MODEL_INSERT), array('email', 'email', '邮箱格式不正确!',self::EXISTS_VALIDATE, '', self::MODEL_INSERT) ); /* 自动完成 */ protected $_auto = array( array('password', 'encrypt', self::MODEL_INSERT, 'callback'), array('state','1',self::MODEL_INSERT), array('portrait', 'portrait', self::MODEL_INSERT, 'callback'), array('create_time', 'createTime', self::MODEL_INSERT, 'callback') ); /* 给密码加密 */ public function encrypt() { return md5(crypt(I('post.password/s'), 'zh')); } /* 创建时间 */ public function createTime() { return time(); } /* 上传头像 */ public function portrait() { if($_FILES['portrait']['name']) { // 如果上传的头像 $upload = new \Think\Upload();// 实例化上传类 $upload-maxSize = 3145728 ;// 设置附件上传大小 $upload-exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload-rootPath = './Uploads/portrait/'; // 设置附件上传根目录 // 上传单个文件 $info = $upload-uploadOne($_FILES['portrait']); if(!$info) {// 上传错误提示错误信息 $this-error($upload-getError()); }else{// 上传成功 获取上传文件信息 $portraitPath = './Uploads/portrait/'.$info['savepath'].$info['savename']; $image = new \Think\Image(); $image-open($portraitPath); // 生成一个居中裁剪为80*80的缩略图 $image-thumb(150, 150,\Think\Image::IMAGE_THUMB_CENTER)-save($portraitPath); return $info['savepath'].$info['savename']; } } } }
对应的数据表结构:
在控制器中检测及插入到数据库:
?12345678910111213141516 /* 注册 */public function register() { if(IS_POST) { $member = D('member'); if($member-create()) { if($member-add()) { $this-success('注册成功!'); } else { $this-error('注册失败!'); } } else { exit($member-getError()); } } $this-display(); }
Q3: 【急】PHP 正则验证输入的数据符合 字母或数字或中文 要求
?php
//验证字符串
$str="编程";
//用正则匹配判断
if(preg_match('/^[0-9a-zA-Z_\x{4e00}-\x{9fa5}]+$/u',$str)){
echo '符合验证规则php数据验证规则!php数据验证规则!';
}else{
echo '不符合验证规则php数据验证规则!php数据验证规则!';
}
?
Q4: thinkphp3.2 有没有自动验证忽略,比如说在修改密码的时候,密码为空,则不需要验证密码的格式是否正确
thinkphp的自动验证格式
array(验证字段,验证规则,错误提示,[验证条件,附加规则,验证时间])
验证条件默认是0存在字段就验证,而你需要的是2值不为空的时候验证
验证时间默认是3全部情况下验证,可以修改为1新增数据时候验证或2编辑数据时候验证
一般情况下,密码验证可以写成
array('password','checkPwd','密码格式不正确',0,'function'),
现在你要求修改密码的时候,密码为空,则不需要验证密码的格式,就还需要增加一句
array('password','checkPwd','密码格式不正确',0,'function'),
array('password','checkPwd','密码格式不正确',2,'function',2),
关于php数据验证规则和php表单数据验证的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







