다음은 ThinkPHP 튜토리얼 칼럼에 나온 ThinkPHP 프레임워크의 인증코드 소개입니다. 도움이 필요한 친구들에게 도움이 되었으면 좋겠습니다!
ThinkVerify 클래스는 인증 코드 생성 및 인증 기능을 지원할 수 있습니다.
인증코드를 생성하는 가장 간단한 방법은 다음과 같습니다.
$Verify = new \Think\Verify();$Verify->entry();
위 코드는 아래와 같이 기본 인증코드 이미지를 생성하여 출력합니다.
생성된 인증코드 정보는 다음 폴더에 저장됩니다.
array('verify_code'=>'当前验证码的值','verify_time'=>'验证码生成的时间戳')
한 페이지에 여러 개의 인증 코드를 생성해야 하는 경우 입력 방법에서 식별 가능한 정보를 전달해야 합니다.
생성된 인증 코드에 대한 관련 매개변수를 설정하여 다양한 표시 효과를 얻을 수 있습니다. 이러한 매개변수는 다음과 같습니다.
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/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
check
메소드를 사용하여 인증 코드 입력이 올바른지 확인할 수 있습니다. 예를 들어 다음은 캡슐화된 인증 코드 감지 기능입니다. rrreee연습: 로그인을 예:
컨트롤러 방법:
rrreee요청 로그인 방법:
위 내용은 ThinkPHP 프레임워크의 인증코드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!