2载入验证码类及$_SESSION处理

Posted guduoduo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2载入验证码类及$_SESSION处理相关的知识,希望对你有一定的参考价值。

1、载入验证码类,并验证

(1)下载定义好的code验证码类,放置到resources目录下

 

(2) 添加路由

Route::get(\'/admin/code\',\'Admin\\LoginController@code\');

(3)添加方法 LoginController.php

public function code()
    {
         $code = new \\Code();
         $code->make();
    }

注意: 不要忘记引入Code类,不加‘\\’,会引入App\\Http\\Controllers\\Admin\\Code

require_once \'resources/code/Code.class.php\';

验证:

 

2、$_SESSION处理 (引入第三方类时)

查看Code类,可以看到其中的get方法,验证session

public function get() {
        return $_SESSION[\'code\'];
    }

    //生成验证码
private function createCode() {
        $code = \'\';
        for ($i = 0; $i < $this->codeLen; $i++) {
            $code .= $this->codeStr [mt_rand(0, strlen($this->codeStr) - 1)];
        }
        $this->code = strtoupper($code);
        $_SESSION[\'code\'] = $this->code;
    }

(1)添加测试路由

Route::get(\'/admin/getcode\',\'Admin\\LoginController@getcode\');

(2)添加方法 LoginController.php

public function getcode()
    {
         $code = new \\Code();
         echo $code->get();
    }

验证:

原因: laravel对session进行封装,未开启原始session

修改:

刚刚将server.php重命名为index.php,修改该文件,打开session_start();

 1 <?php
 2 
 3 /**
 4  * Laravel - A PHP Framework For Web Artisans
 5  *
 6  * @package  Laravel
 7  * @author   Taylor Otwell <taylorotwell@gmail.com>
 8  */
 9 
10 session_start();
11 
12 $uri = urldecode(
13     parse_url($_SERVER[\'REQUEST_URI\'], PHP_URL_PATH)
14 );
15 
16 // This file allows us to emulate Apache\'s "mod_rewrite" functionality from the
17 // built-in PHP web server. This provides a convenient way to test a Laravel
18 // application without having installed a "real" web server software here.
19 if ($uri !== \'/\' && file_exists(__DIR__.\'/public\'.$uri)) {
20     return false;
21 }
22 
23 require_once __DIR__.\'/public/index.php\';

刷新

3、将验证码引入到登陆页面

(1)修改login.blade.php

1 <input type="text" class="code" name="code"/>
2 <span><i class="fa fa-check-square-o"></i></span>
3 <img src="{{url(\'admin/code\')}}" alt="">

(2)验证

http://127.0.0.1/admin/login(此时显示验证码,而点击验证码,并不能更新)

 (3)验证码刷新功能

 添加onclick 事件

<img src="{{url(\'admin/code\')}}" alt="" onclick="this.src=\'{{url(\'admin/code\')}}\'">

 

如图可以看到:访问地址一样,有的浏览器误以为是一样的地址,不会再去请求,所以加一个随机数区分

<img src="{{url(\'admin/code\')}}" alt="" onclick="this.src=\'{{url(\'admin/code\')}}?\'+Math.random()">

 

 

 

以上是关于2载入验证码类及$_SESSION处理的主要内容,如果未能解决你的问题,请参考以下文章

laravel之引入验证码类

CI框架中,扩展验证码类。

求 PHP 图片验证码类 给出详细调用方法 谢谢!!!

PHP验证码类

实现图片验证码类 PHP

4-5验证码类封装