《PHP應(yīng)用:Thinkphp實現(xiàn)自動驗證和自動完成》要點:
本文介紹了PHP應(yīng)用:Thinkphp實現(xiàn)自動驗證和自動完成,希望對您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:thinkphp教程
PHP學(xué)習(xí)Thinkphp的自動驗證和自動完成都是根所表單提交的內(nèi)容來的,對部分?jǐn)?shù)據(jù)進(jìn)行規(guī)則驗證和處理后插入到數(shù)據(jù)庫.
PHP學(xué)習(xí)1、自動驗證格式:
PHP學(xué)習(xí)
array(
array(驗證字段1,驗證規(guī)則,錯誤提示,[驗證條件,附加規(guī)則,驗證時間]),
array(驗證字段2,驗證規(guī)則,錯誤提示,[驗證條件,附加規(guī)則,驗證時間]),
......
);
PHP學(xué)習(xí)驗證條件:
self::EXISTS_VALIDATE 或者0 存在字段就驗證(默認(rèn))
self::MUST_VALIDATE 或者1 必須驗證
self::VALUE_VALIDATE或者2 值不為空的時候驗證
驗證時間:
self::MODEL_INSERT或者1新增數(shù)據(jù)時候驗證
self::MODEL_UPDATE或者2編輯數(shù)據(jù)時候驗證
self::MODEL_BOTH或者3全部情況下驗證(默認(rèn))
PHP學(xué)習(xí)2、自動完成格式:
PHP學(xué)習(xí)
array(
array(完成字段1,完成規(guī)則,[完成條件,附加規(guī)則]),
array(完成字段2,完成規(guī)則,[完成條件,附加規(guī)則]),
......
);
PHP學(xué)習(xí)完成時間:
self::MODEL_INSERT或者1?? 新增數(shù)據(jù)的時候處理(默認(rèn))
self::MODEL_UPDATE或者2?? 更新數(shù)據(jù)的時候處理
self::MODEL_BOTH或者3 所有情況都進(jìn)行處理
PHP學(xué)習(xí)小實例(注冊)
HTML布局:
PHP學(xué)習(xí)
PHP學(xué)習(xí)
<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">重復(fù)暗碼</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">關(guān)像的大小為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>
PHP學(xué)習(xí)模型(MemberModel)
PHP學(xué)習(xí)
<?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', '重復(fù)暗碼不正確!', 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'));
}
/* 創(chuàng)建時間 */
public function createTime() {
return time();
}
/* 上傳頭像 */
public function portrait() {
if($_FILES['portrait']['name']) { // 如果上傳的頭像
$upload = new \Think\Upload();// 實例化上傳類
$upload->maxSize = 3145728 ;// 設(shè)置附件上傳大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 設(shè)置附件上傳類型
$upload->rootPath = './Uploads/portrait/'; // 設(shè)置附件上傳根目錄
// 上傳單個文件
$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'];
}
}
}
}
PHP學(xué)習(xí)對應(yīng)的數(shù)據(jù)表結(jié)構(gòu):
PHP學(xué)習(xí)
PHP學(xué)習(xí)在控制器中檢測及插入到數(shù)據(jù)庫:
PHP學(xué)習(xí)
/* 注冊 */
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學(xué)習(xí)以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所贊助
維易PHP培訓(xùn)學(xué)院每天發(fā)布《PHP應(yīng)用:Thinkphp實現(xiàn)自動驗證和自動完成》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/8213.html