首页 > php框架 > ThinkPHP > 说说Thinkphp5.1实现邮箱验证问题

说说Thinkphp5.1实现邮箱验证问题

藏色散人
发布: 2021-11-22 15:51:39
转载
2129 人浏览过

下面thinkphp框架教程栏目将给大家讲解Thinkphp5.1实现邮箱验证问题,希望对需要的朋友有所帮助!

具体问题:

比如我想验证这个email是否合法 我想用TP的自带的验证规则 应该怎样验证呢?我看手册上要定义个User类我们定义一个\app\index\validate\User验证器类用于User的验证。 TP框架验证邮箱用户名什么的要这么麻烦吗?这个验证器类要写在哪里呢?跟控制器同级目录下吗?

<?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(&#39;email&#39;);
        
    }
}
?>
登录后复制

解决办法:

要单个验证,可以静态调用的哦

// 验证是否有效邮箱地址
use think\facade\Validate;
Validate::isEmail(&#39;thinkphp@qq.com&#39;); // true
登录后复制

如果验证的东西比较多,建议还是推荐使用验证器

验证器类可以自定义目录,建议放在 \app\index\validate目录下。

验证器类

namespace app\index\validate;
use think\Validate;
class User extends Validate
{
    protected $rule =   [
        &#39;name&#39;  => &#39;require|max:25&#39;,
        &#39;email&#39; => &#39;email&#39;,    
    ];
    
    protected $message  =   [
        &#39;name.require&#39; => &#39;名称必须&#39;,
        &#39;name.max&#39;     => &#39;名称最多不能超过25个字符&#39;,
        &#39;email&#39;        => &#39;邮箱格式错误&#39;,    
    ];
    
}
登录后复制

在控制器里使用:

namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
    public function index()
    {
        $data = [
            &#39;name&#39;  => &#39;thinkphp&#39;,
            &#39;email&#39; => &#39;thinkphp@qq.com&#39;,
        ];
        $validate = new \app\index\validate\User;
        if (!$validate->check($data)) {
            dump($validate->getError());
        }
    }
}
登录后复制

以上是说说Thinkphp5.1实现邮箱验证问题的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:segmentfault.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板