Thinkphp实现自动验证和自动完成,
Thinkphp的自动验证和自动完成都是根所表单提交的内容来的,对部分数据进行规则验证和处理后插入到数据库。
1、自动验证格式:
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、自动完成格式:
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="max-width:90%" 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', '', '用户名是唯一的!', self::EXISTS_VALIDATE, 'unique', self::MODEL_INSERT), array('password', 'require', '没有填写密码!', 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']; } } } }
对应的数据表结构:
在控制器中检测及插入到数据库:
/* 注册 */ 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(); }
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
- php 表单验证实现代码
- php session应用实例 登录验证
- php cookie 登录验证示例代码
- PHP验证码类代码( 最新修改,完全定制化! )
- php 手机号码验证正则表达式
- PHP通过session id 实现session共享和登录验证的代码
- 一个漂亮的php验证码类(分享)
- PHP生成图片验证码、点击切换实例
- PHP使用CURL实现对带有验证码的网站进行模拟登录的方法

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
