이 글에서는 주로 PHP를 사용하여 웹사이트 인증코드 기능을 구현하는 방법을 소개합니다. 참고값이 아주 좋은데 아래 에디터로 살펴보겠습니다
인증코드는 웹사이트에서 흔히 사용하는 보안 수단이자, 초보 웹마스터가 익히기 어려운 기술이기도 합니다. 간단하고 효과적인 인증코드 구현 방법을 소개하겠습니다.
시작하기 전에
공식적으로 시작하기 전에 PHP의 gd2 그래픽 라이브러리 지원을 활성화해야 합니다(php.ini에서 "php_gd2.dll"을 검색하고 "; Extension=php_gd2.dll"을 찾아 문장 시작 부분의 세미콜론을 제거하세요.
참조: PHP의 gd2 라이브러리를 여는 방법
Core: img.php
이 페이지는 인증 코드를 생성하고 작성합니다. 올바른 값 입력 세션
무작위 4자리 인증코드
$check=rand(1000,9999);
생성됩니다. 세션에 인증 코드를 작성하세요
Session_start(); $_SESSION["check"] = $check;
사진 만들기
$im = imagecreate(80,30);
이 이미지의 배경은 기본적으로 검은색이므로 흰색으로 채워야 합니다.
imagefill($im,0,0,ImageColorAllocate($im, 255,255,255));
이미지라인을 사용하여 두 개의 실선을 무작위로 그립니다
$y1=rand(0,30); $y2=rand(0,30); $y3=rand(0,30); $y4=rand(0,30); imageline($im,0,$y1,70, $y3,000); imageline($im,0,$y2,70, $y4,000);
임의의 위치에 텍스트 그리기
$strx=rand(3,15); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,0,1),ImageColorAllocate($img,34,87,100)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,1,1),ImageColorAllocate($img,781,117,78)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,2,1),ImageColorAllocate($img,160,40,40)); $strx+=rand(15,20); $stry=rand(2,15); imagestring($img,5,$strx,$stry,substr($check,3,1),ImageColorAllocate($img,25,55,10));
출력 이미지
Header("Content-type: image/PNG"); ImagePNG($img);
끝, 전체 코드는 다음과 같습니다
사용자 인터페이스: index.php
모두가 방법을 알고 있다고 생각하므로 코드를 직접 제공하겠습니다
<!DOCTYPE html> <html> <body> <form action="action.php" method="post"> <input type="text" name="cikle" placeholder="验证码"> <br> <img id="cikle" style="-webkit-user-select: none" src="img.php"><input type="submit" value="Submit"> </form> </body> </html>위 코드는 사용자가 입력한 값을 "action.php"에 전달합니다
확인: action.php
이 단계는 입력한 값을 비교하는 것입니다. 세션 비교
의 값을 가진 사용자가 같으면 출력이 "올바른" 것입니다.
이 같지 않으면 출력이 "잘못"입니다
<?php Session_start(); if ($_SERVER["REQUEST_METHOD"] == "POST") { if($_SESSION["check"]!=intval($_POST["cikle"])){ echo "不正确"; }else{ echo "正确"; } }
위 내용은 PHP를 이용하여 구현한 것입니다. 홈페이지 인증코드 기능코드에 대한 자세한 설명은 PHP 중국어 홈페이지(www.php.cn)에 더 많은 관련 내용이 있으니 참고해주세요!