zoukankan      html  css  js  c++  java
  • laravel基础课程---14、表单验证(lavarel如何进行表单验证)

    laravel基础课程---14、表单验证(lavarel如何进行表单验证)

    一、总结

    一句话总结:

    lavarel的验证的功能比tp要【简单】且【强大】很多
    直接控制器中:添加【规则数组】和【修改提示信息数组】,然后调用【验证类】进行验证即可:$validator = Validator::make($input,$rules,$message);
    表单验证
    
    
    1、控制器
    // 规则
    
    $rules=[
            'name'=>'required|unique:user|between:6,12',
            "pass"=>'required|between:6,12|same:repass',
        ];
    
    // 所有数据
    
    $input=$request->all();
    
    // 修改提示信息
    
    $message=array(
    
        "name.required"=>"请输入用户名",
        "name.unique"=>"用户名以存在",
        "name.between"=>"长度不满足",
        "pass.required"=>"请输入密码",
        "pass.between"=>"密码长度不满足",
        "pass.sname"=>"两次不一致",
        );
    
    // 设置表单验证的参数
        // 参数一 需要验证的数据
        // 参数二 验证规则
        // 参数三 提示信息
    $validator = Validator::make($input,$rules,$message);
    
    
    // 进行验证
    
    if($validator->passes()){
        // 处理数据
        unset($_POST['_token']);
        unset($_POST['repass']);
    
        $_POST['pass']=Crypt::encrypt( $_POST['pass']);
        $_POST['time']=time();
        if (DB::table("user")->insert($_POST)) {
            # code...
            return redirect("admin/user");
        }else{
            return back();
        }
    
    }else{
        return back()->withInput()->withErrors($validator);
    }
    
    2、页面中提示错误
    
    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif

    1、lavarel如何加密解密字符串?

    Crypt对象的encrypt方法:echo $pass=Crypt::encrypt('123');
    Crypt对象的decrypt方法:echo Crypt::decrypt('MjM1OCJ9');

    你可以借助 Crypt facade 来加密一个值。这些值都会使用 OpenSSL 与 AES-256-CBC 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 (MAC),以检测加密字符串是否被篡改过。

    2、Crypt::encrypt($pass)和md5加密的区别

    Crypt([krɪpt]:n. 土窖,地下室)::encrypt($pass):每次都是变化的,长度180-192之间,并且可逆
    md5:不变的,并且可能被暴力破解

    你可以借助 Crypt facade 来加密一个值。这些值都会使用 OpenSSL 与 AES-256-CBC 来进行加密。此外,所有加密过后的值都会被签署文件消息验证码 (MAC),以检测加密字符串是否被篡改过。

    crypt

    英 [krɪpt]  美 [krɪpt] 
    • n. 土窖,地下室;腺窝

    3、lavarel中 判断表单用户名存在不存在是不是用的ajax?

    其实不必:闪存 + with()方法即可

    with方法向页面返回一个变量,这个变量的值就是 "用户不存在"

    4、判断表单(比如判断提交的用户名是否存在),有没有必要弹出框提示?

    没必要,直接在页面的 div class="alert alert-danger"   标签中显示即可
    <!-- /resources/views/post/create.blade.php -->
    
    <h1>创建文章</h1>
    
    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <ul>
                @foreach ($errors->all() as $error)
                    <li>{{ $error }}</li>
                @endforeach
            </ul>
        </div>
    @endif
    
    <!-- 创建文章的表单 -->

    二、内容在总结中

     
  • 相关阅读:
    Jupyter notebook添加Anaconda中的虚拟环境
    Django踩坑之在Django中创建项目时ImportError: No module named django.core
    Django踩坑之ExtendsNode: extends 'base/base.html'> must be the first tag in the template.
    git 中文文件名乱码
    Django开发过程中遇到的问题和解决方案
    Advanced pandas
    Pycomcad中的过滤机制及访问引用块内对象简述
    头大的一篇日志 细节总结 唐诗三百首
    UIBarItem 的设置
    MJExtension json快速解析
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10853795.html
Copyright © 2011-2022 走看看