ThinkPHP 프레임워크의 인증코드에 대한 자세한 설명

藏色散人
풀어 주다: 2020-10-28 15:36:12
앞으로
4190명이 탐색했습니다.

다음은 ThinkPHP 튜토리얼 칼럼에 나온 ThinkPHP 프레임워크의 인증코드 소개입니다. 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다!

ThinkVerify 클래스는 인증 코드 생성 및 인증 기능을 지원할 수 있습니다.

인증코드를 생성하는 가장 간단한 방법은 다음과 같습니다.

$Verify = new \Think\Verify();$Verify->entry();
로그인 후 복사

위 코드는 아래와 같이 기본 인증코드 이미지를 생성하여 출력합니다.

생성된 인증코드 정보는 다음 폴더에 저장됩니다.

array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
로그인 후 복사

한 페이지에 여러 개의 인증 코드를 생성해야 하는 경우 입력 방법에서 식별 가능한 정보를 전달해야 합니다.

인증 코드 매개변수

생성된 인증 코드에 대한 관련 매개변수를 설정하여 다양한 표시 효과를 얻을 수 있습니다. 이러한 매개변수는 다음과 같습니다.

파라미터 설정 2가지 방법을 사용합니다. 또는 다음과 같은 동적 설정을 사용하세요:
Parameters Description
expire 인증 코드 유효 기간(초)
useImgBg 배경 이미지 사용 여부 기본값은 false입니다.
fontSize 확인 코드 글꼴 크기(픽셀) 기본값은 25
useCurve 혼동 곡선 사용 여부는 기본적으로 true
useNoise 노이즈 추가 여부 기본값은 true
ImageWthEverification 코드 너비는 0으로 설정됩니다. 자동으로 계산됩니다. imageh set 검증 코드 높이가 자동으로 계산됩니다. 코드 폰트는 기본적으로 랜덤으로 획득됩니다
useZh 중국어 인증코드 사용 여부
bg 인증코드 배경색 RGB 배열 설정, 예: 배열(243, 251, 254)
seKey 인증코드 암호화키
codeSet 인증코드 문자셋 3.2.1 추가
zhSet 인증코드 문자셋(중국어) 3.2.1 추가
기본 매개변수 구성:
수신 매개변수를 초기화하세요:

확인 코드 글꼴

기본적으로 확인 코드의 글꼴은 무작위로 사용됩니다. ThinkPHP/Library/ For Think/Verify/ttfs/ 디렉토리에 있는 글꼴 파일을 사용하면 인증 코드의 글꼴을 지정할 수 있습니다. 예:

$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/ttfs/5.ttf$Verify->fontttf = '5.ttf';$Verify->entry();
로그인 후 복사
배경 이미지

는 다음과 같이 설정할 수 있는 인증 코드 배경 이미지 기능을 지원합니다. :

$Verify = new \Think\Verify();// 开启验证码背景图片功能 随机使用 ThinkPHP/Library/Think/Verify/bgs 目录下面的图片$Verify->useImgBg = true;$Verify->entry();
로그인 후 복사

중국어 인증 코드

중국어 인증 코드를 사용하려면 다음과 같이 설정할 수 있습니다.

$Verify = new \Think\Verify();// 验证码字体使用 ThinkPHP/Library/Think/Verify/zhttfs/simhei.ttf$Verify->useZh = true;$Verify->entry();
로그인 후 복사
표시 효과는 그림과 같습니다:

정상적으로 표시되지 않을 경우 ThinkPHP/Library/Think/Verify에 중국어 글꼴 파일이 있는지 확인해 주세요. /zhttfs/ 디렉토리.

ThinkPHP/Library/Think/Verify/zhttfs/에 중국어 글꼴 파일이 없으면 C:WindowsFonts에서 중국어 글꼴 파일을 다운로드하거나 복사할 수 있습니다. 글꼴 파일 확장자는 .ttf입니다.

인증 코드 감지ThinkPHP/Library/Think/Verify/ttfs/目录下面的字体文件,我们可以指定验证码的字体,例如:

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串function check_verify($code, $id = ''){$verify = new \Think\Verify();return $verify->check($code, $id);
}
로그인 후 복사

背景图片

支持验证码背景图片功能,可以如下设置:

<?php
namespace Home\Controller;use Think\Controller;class LoginController extends Controller
{    function Login()
    {        if(empty($_POST))
        {            $this->display();    
        }    
        else
        {            $code = $_POST["yzm"];             $verify = new \Think\Verify();           if($verify->check($code,2)) //code是用户输入的值 ,2是验证码检测标示,必须与生成的验证码标示相同才能验证            {                if($_POST["uid"]!="" && $_POST["pwd"]!="")
                {                    $model = D("Users");                    $uid = $_POST["uid"];    
                    $pwd = $_POST["pwd"];                    $attr = $model->field("Pwd")->find($uid);                    //var_dump($attr);
                    if($pwd==$attr["pwd"])
                    {
                        session("uid",$uid);   // 跳转页面之前将$uid存入session                    $this->success("登录成功!","Main");                                            }                    else
                    {                        $this->error("登录失败!");    
                    }
                }                else
                    {                        $this->error("用户名或者密码不能为空!");    
                    }
            }            else
            {                $this->error("验证码不正确!");    
            }
        }        
    }//生成验证码的操作方法
    function yzm()
    {        $config =    array(    
            'fontSize'    =>    30,    // 验证码字体大小    
            'length'      =>    4,     // 验证码位数  
            'useCurve'    =>    true,  // 是否画混淆曲线  
            'useNoise'    =>    true,  // 关闭验证码杂点
            'expire'      =>    60,    // 验证码有效期(秒)
            'useImgBg'    =>    false,  // 使用背景图片
            'useZh'       =>    true,  // 使用中文验证码
            'imageW'      =>    240,   // 验证码宽度
            'imageH'      =>    60,    // 验证码高度
            'fontttf'     =>    'simhei.ttf', // 验证码字体        );        $Verify = new \Think\Verify($config);        $Verify->entry(2);//参数是生成验证码的标示,适用于同一个页面有多个验证码的时候,生成验证码的标示必须与检测验证码的标示相同,否则验证码不正确    }?>
로그인 후 복사

中文验证码

如果要使用中文验证码,可以设置:

rrreee

显示效果如图:

如果无法正常显示,请确认你的 ThinkPHP/Library/Think/Verify/zhttfs/ 目录下面存在中文字体文件。

若ThinkPHP/Library/Think/Verify/zhttfs/里面没有中文字体文件,可以下载或者从C:WindowsFonts里面找到中文字体文件复制过来,注意字体文件扩展名为.ttf。

验证码检测

可以用ThinkVerify类的check

ThinkVerify 클래스의 check 메소드를 사용하여 인증 코드 입력이 올바른지 확인할 수 있습니다. 예를 들어 다음은 캡슐화된 인증 코드 감지 기능입니다. rrreee

연습: 로그인을 예:

컨트롤러 방법:

rrreee

요청 로그인 방법:

위 내용은 ThinkPHP 프레임워크의 인증코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!