이 글은 thinkPHP의 간단한 인증코드 구현 방법을 주로 소개하고, thinkPHP 인증코드의 구현 원리, 단계, 호출 기법을 예시 형태로 분석해 도움이 필요한 친구들이 참고할 수 있습니다
본 글의 예시는 설명합니다. thinkPHP에서 검증 코드 구현 간단한 구현 방법. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
작업 렌더링은 다음과 같습니다.
1.php 측에서 인증 코드 기능을 생성합니다.
public function verify(){ // 验证码 import("@.Util.Image"); Image::buildImageVerify(4,1,'png',40,20,'verify'); } /** * 生成图像验证码 * @static * @access public * @param string $length 位数 * @param string $mode 类型 * @param string $type 图像格式 * @param string $width 宽度 * @param string $height 高度 * @return string */ static function buildImageVerify($length=4, $mode=1, $type='png', $width=48, $height=22, $verifyName='verify') { import('ORG.Util.String'); $randval = String::randString($length, $mode); session($verifyName, md5($randval)); $width = ($length * 10 + 10) > $width ? $length * 10 + 10 : $width; if ($type != 'gif' && function_exists('imagecreatetruecolor')) { $im = imagecreatetruecolor($width, $height); } else { $im = imagecreate($width, $height); } $r = Array(225, 255, 255, 223); $g = Array(225, 236, 237, 255); $b = Array(225, 236, 166, 125); $key = mt_rand(0, 3); $backColor = imagecolorallocate($im, $r[$key], $g[$key], $b[$key]); //背景色(随机) $borderColor = imagecolorallocate($im, 100, 100, 100); //边框色 imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor); imagerectangle($im, 0, 0, $width - 1, $height - 1, $borderColor); $stringColor = imagecolorallocate($im, mt_rand(0, 200), mt_rand(0, 120), mt_rand(0, 120)); // 干扰 for ($i = 0; $i < 10; $i++) { imagearc($im, mt_rand(-10, $width), mt_rand(-10, $height), mt_rand(30, 300), mt_rand(20, 200), 55, 44, $stringColor); } for ($i = 0; $i < 25; $i++) { imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $stringColor); } for ($i = 0; $i < $length; $i++) { imagestring($im, 5, $i * 10 + 5, mt_rand(1, 8), $randval{$i}, $stringColor); } Image::output($im, $type); }
이미지를 생성하는 동안 이미지가 세션.
2. 페이지 쪽
<img id="verifyImg" src="{sh::U('Agent/Login/verify')}" onClick="changeVerify()" title="点击刷新验证码" /></p>
은 src에서 직접 호출됩니다.
변경 사항을 트리거하려면 클릭하세요.
function changeVerify(){ verifyURL = "{sh::U('Agent/Login/verify')}"; $("#verifyImg").attr("src",verifyURL); return false; }
3. 백그라운드 검증, 게시물 필드가 세션의 인증 코드와 일치하는지 비교합니다.
if($_SESSION['verify'] != md5($_POST['verify'])) { $this->error('验证码错误!'); }
위 내용은 모두의 학습에 도움이 되기를 바랍니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 주목해주세요!
관련 권장 사항:
Thinkphp3.2.3에서 phpqrcode로 로고가 있는 QR 코드를 생성하는 방법
thinkphp와 함께 제공되는 인증 코드에 대한 종합 분석
thinkPHP 프레임워크를 사용하여 바코드를 생성하는 방법
위 내용은 thinkPHP에서 간단한 인증코드 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!