zoukankan      html  css  js  c++  java
  • laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

    laravel基础课程---15、分页及验证码(lavarel分页效果如何实现)

    一、总结

    一句话总结:

    数据库的paginate方法:$data=DB::table("user")->orderBy("id","desc")->paginate(10);
    页面links方法:{{$data->links()}}
    分页效果
    
    1、控制器
    $data=DB::table("user")->orderBy("id","desc")->paginate(10);
    
        // simplePaginate  简化的分页效果
        // paginate  正常分页效果
    // 加载用户管理页面
    return view('admin.user.index')->with("data",$data);
    
    2、页面中
    {{$data->links()}}

    1、lavarel的两种分页效果?

    简化分页效果:只有上一页下一页按钮:$data=DB::table("user")->orderBy("id","desc")->simplePaginate(10);
    正常分页效果:还有指定页的按钮 :$data=DB::table("user")->orderBy("id","desc")->paginate(10);
    分页效果
    
    1、控制器
    $data=DB::table("user")->orderBy("id","desc")->paginate(10);
    
        // simplePaginate  简化的分页效果
        // paginate  正常分页效果
    // 加载用户管理页面
    return view('admin.user.index')->with("data",$data);
    
    2、页面中
    {{$data->links()}}

    2、lavarel中如何使用验证码,比如登录的时候?

    引入外部验证码
    书写验证码路由:因为验证码使用的很普遍
    引入外部验证码
    
    1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2
    esources)
    
    2、书写路由
        Route::get("admin/yzm","AdminLoginController@yzm");
    
    3、控制器中生成验证码
        // 引入验证码类
        include "../resources/code/Code.class.php";
    
        // 实例化验证码类
    
        $code=new Code();
    
        // 生成验证码
    
        $code->make();
    
    4、获取验证码
    
        $code->get();

    3、lavarel中如何引入一个外部的类,比如验证码类?

    include关键字:include "../resources/code/Code.class.php";
    引入外部验证码
    
    
    1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2
    esources)
    
    2、书写路由
        Route::get("admin/yzm","AdminLoginController@yzm");
    
    3、控制器中生成验证码
        // 引入验证码类
        include "../resources/code/Code.class.php";
    
        // 实例化验证码类
    
        $code=new Code();
    
        // 生成验证码
    
        $code->make();

    4、lavarel中如何找到根命名空间?

    反斜杠:$code=new Code();
    引入外部验证码
    
    
    1、把验证码文件夹拷贝到指定目录 (D:laravelyzmeduyzm2
    esources)
    
    2、书写路由
        Route::get("admin/yzm","AdminLoginController@yzm");
    
    3、控制器中生成验证码
        // 引入验证码类
        include "../resources/code/Code.class.php";
    
        // 实例化验证码类
    
        $code=new Code();
    
        // 生成验证码
    
        $code->make();

    5、验证码点击自动更新如何实现?

    js点击事件:点击自动更换img地址:onclick="imgs(this)"
    带随机数做参数:不然地址一样,地址不会被更新:obj.src='/admin/yzm?code='+Math.random();
    <div class="input-group">
        <span class="input-group-addon"> <span class="glyphicon glyphicon-lock"></span></span>
        <input type="text" class="form-control" name="code" placeholder="请输入验证码">
        <img src="/admin/yzm" onclick="imgs(this)" alt="">
    </div>
    <script>
        
        function imgs(obj){
            // 更换地址
            obj.src='/admin/yzm?code='+Math.random();
        }
    </script>
        // 验证码方法
    
        public function yzm(){
            // 引入验证码类
            include "../resources/code/Code.class.php";
    
            // 实例化验证码类
    
            $code=new Code();
    
            // 生成验证码
    
            $code->make();
        }

    6、验证码验证如何实现及原理?

    看文档或者看源代码:非常简单,这里是个get函数获取验证码数据,和用户传过来的验证码比较一下即可:$yzm=$code1->get();
    验证码原理就是session():可能需要按照需求改一下验证码相关的函数

    验证码验证

        // 后台登录处理
    
        public function check(Request $request){
            
            // 接收数据
    
            $name=$request->input("name");
            $pass=$request->input("pass");
            $code=$request->input("code");
    
            // 判断用户名是否输入
    
            if ($name) {
                # code...
                // 判断密码
                if ($pass) {
                    # code...
                    // 验证码是否正确
    
                    // // 引入验证码类
                    include "../resources/code/Code.class.php";
    
                    // // 实例化验证码类
    
                    $code1=new Code();
    
                    // 获取验证码
    
                    $yzm=$code1->get();
    
                    if ($yzm==strtoupper($code)) {
                        // 获取数据库
    
                        if ($data=DB::table("user")->where('name','=',$name)->first()) {
                            // 将数据库中密码解密
                            $dataPass=Crypt::decrypt($data->pass);
    
                            if($dataPass==$pass){
    
                              
    
                                session(['adminUserInfo'=>['name'=>$name,'id'=>$data->id]]);
                                return redirect('admin');
                            }else{
                                return back()->withInput()->with("error","密码错误");
    
                            }
    
                        }else{
                            return back()->withInput()->with("error","用户名不存在");
    
                        }
                    }else{
                        return back()->withInput()->with("error","验证码有误");
    
                    }
    
                }else{
                    return back()->withInput()->with("error","请输入密码");
    
                }
            }else{
                return back()->withInput()->with("error","请输入用户名");
            }
         //    exit();
            // // 判断
    
            // if ($_POST['name']=='admin' && $_POST['pass']=='123') {
                
    
                
            // }else{
    
            //     return back();
            // }
        }

    7、lavarel的session中可以存储数组数据么?

    可以:session(['key' => 'value']);
    Route::get('home', function () {
        // 获取 session 中的一条数据...
        $value = session('key');
    
        // 指定一个默认值...
        $value = session('key', 'default');
    
        // 存储一条数据至 session 中...
        session(['key' => 'value']);
    });

    二、内容在总结中

     
  • 相关阅读:
    StringBuffer
    判断java标识符
    基本数据类型和String相互转换
    使用String
    Properties属性文件
    Map排序
    java集合之三映射:HashMap、Hashtable、LinkedHashMap、TreeMap
    列表、集合与数组之间相互转换
    自定义列表排序
    ML-支持向量:SVM、SVC、SVR、SMO原理推导及实现
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10854563.html
Copyright © 2011-2022 走看看