鍍金池/ 問答/PHP/ TP5.1怎樣進(jìn)行郵箱驗(yàn)證呢?

TP5.1怎樣進(jìn)行郵箱驗(yàn)證呢?

比如我想驗(yàn)證這個(gè)email是否合法 我想用TP的自帶的驗(yàn)證規(guī)則 應(yīng)該怎樣驗(yàn)證呢?我看手冊(cè)上要定義個(gè)User類我們定義一個(gè)\app\index\validate\User驗(yàn)證器類用于User的驗(yàn)證。 TP框架驗(yàn)證郵箱用戶名什么的要這么麻煩嗎?這個(gè)驗(yàn)證器類要寫在哪里呢?跟控制器同級(jí)目錄下嗎?

<?php
namespace app\index\controller;
use think\Controller;
use think\facade\Request;
use think\response;
use think\View;
use think\Validate;
class Register extends Controller
{
    public function regcheck(){
        $data=input('email');
        
    }
}
?>
回答
編輯回答
撿肥皂

要單個(gè)驗(yàn)證,可以靜態(tài)調(diào)用的哦

// 驗(yàn)證是否有效郵箱地址
use think\facade\Validate;

Validate::isEmail('thinkphp@qq.com'); // true

如果驗(yàn)證的東西比較多,建議還是推薦使用驗(yàn)證器
驗(yàn)證器類可以自定義目錄,建議放在 \app\index\validate目錄下。

驗(yàn)證器類

namespace app\index\validate;

use think\Validate;

class User extends Validate
{
    protected $rule =   [
        'name'  => 'require|max:25',
        'email' => 'email',    
    ];
    
    protected $message  =   [
        'name.require' => '名稱必須',
        'name.max'     => '名稱最多不能超過25個(gè)字符',
        'email'        => '郵箱格式錯(cuò)誤',    
    ];
    
}

在控制器里使用:

namespace app\index\controller;

use think\Controller;

class Index extends Controller
{
    public function index()
    {
        $data = [
            'name'  => 'thinkphp',
            'email' => 'thinkphp@qq.com',
        ];

        $validate = new \app\index\validate\User;

        if (!$validate->check($data)) {
            dump($validate->getError());
        }
    }
}
2017年10月10日 08:26