거의 모든 웹사이트 로그인 페이지에는 인증 코드가 있습니다. 인증 코드는 정크 등록 기계가 대량의 사용자 계정을 등록하여 서버 메모리를 점유하고 서버를 마비시키는 것을 방지하는 데 사용되는 보안 보호 메커니즘입니다. 다음으로, 이 글을 통해 PHP 드로잉 웹사이트 로그인 홈페이지 사진 인증 코드를 소개하겠습니다. 필요한 친구들은 참고하시면 됩니다
인증 코드는 거의 모든 웹사이트 로그인 페이지에 존재하는 보안 보호 메커니즘입니다. 스팸 등록 기계가 대량의 사용자 계정을 등록하여 서버 메모리를 점유하고 서버를 마비시키는 것을 방지하기 위해 등록 시 작업 확인이 필요합니다.
사진 인증 코드 구현은 매우 간단합니다. 먼저 지정된 문자 집합에서 일정 개수의 문자를 무작위로 선택하여 캔버스에 불규칙하게 그린 다음 간섭점과 간섭 요소를 적절하게 추가하고 마지막으로 그림을 출력하면 새로운 인증 코드가 완성됩니다.
먼저 생성된 인증 코드를 보여주세요:
새로고침을 클릭하세요:
효과에 매우 만족하신다면 아래를 계속 읽어주세요.
프런트 엔드 코드는 다음과 같습니다.
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <title>This is a test!</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> </head> <body> <form name="form"> <input type="text" placeholder="账号"/><br/> <input type="password" placeholder="密码"/><br/> <input type="text" placeholder="验证码"/> <img id="verImg" src="libs/verification.php"/> <a href="#" class="change" onclick="changeVer()">点击刷新</a><br/> <input type="submit" value="登录"/> </form> <script type="text/javascript"> //刷新验证码 function changeVer(){ document.getElementById("verImg").src="libs/verification.php?tmp="+Math.random(); } </script> </body> </html>
PHP 스크립트 파일 확인 코드의 코드는 다음과 같습니다.
<?php session_start(); //开启session记录验证码数据 vCode(4, 15);//设置验证码的字符个数和图片基础宽度 //vCode 字符数目,字体大小,图片宽度、高度 function vCode($num = 4, $size = 20, $width = 0, $height = 0) { !$width && $width = $num * $size * 4 / 5 + 15; !$height && $height = $size + 10; //设置验证码字符集合 $str = "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVW"; //保存获取的验证码 $code = ''; //随机选取字符 for ($i = 0; $i < $num; $i++) { $code .= $str[mt_rand(0, strlen($str)-1)]; } //创建验证码画布 $im = imagecreatetruecolor($width, $height); //背景色 $back_color = imagecolorallocate($im, mt_rand(0,100),mt_rand(0,100), mt_rand(0,100)); //文本色 $text_color = imagecolorallocate($im, mt_rand(100, 255), mt_rand(100, 255), mt_rand(100, 255)); imagefilledrectangle($im, 0, 0, $width, $height, $back_color); // 画干扰线 for($i = 0;$i < 5;$i++) { $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); imagearc($im, mt_rand(- $width, $width), mt_rand(- $height, $height), mt_rand(30, $width * 2), mt_rand(20, $height * 2), mt_rand(0, 360), mt_rand(0, 360), $font_color); } // 画干扰点 for($i = 0;$i < 50;$i++) { $font_color = imagecolorallocate($im, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255)); imagesetpixel($im, mt_rand(0, $width), mt_rand(0, $height), $font_color); } //随机旋转角度数组 $array=array(5,4,3,2,1,0,-1,-2,-3,-4,-5); // 输出验证码 // imagefttext(image, size, angle, x, y, color, fontfile, text) @imagefttext($im, $size , array_rand($array), 12, $size + 6, $text_color, 'c:\WINDOWS\Fonts\simsun.ttc', $code); $_SESSION["VerifyCode"]=$code; //no-cache在每次请求时都会访问服务器 //max-age在请求1s后再次请求会再次访问服务器,must-revalidate则第一发送请求会访问服务器,之后不会再访问服务器 // header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate"); header("Cache-Control: no-cache"); header("Content-type: image/png;charset=gb2312"); //将图片转化为png格式 imagepng($im); imagedestroy($im); } ?>
요약: 위 내용은 이 글의 전체 내용입니다. 모든 분들께 도움이 되길 바랍니다. 학습.
관련 권장 사항:
PHP 언어에서 JSON을 사용하고 json을 배열로 줄이기
위 내용은 PHP 기반의 웹사이트 로그인 홈페이지 이미지에 대한 인증코드 생성 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!