Verification Code (CAPTCHA)는 사용자 ID를 검증하는 데 널리 사용되는 기술이며 일반적으로 사용자가 이미지에서 문자 나 이미지를 식별하도록 요구함으로써 로봇 자동화를 피합니다. 이 기사는 PHP를 통해 검증 코드 이미지를 생성하고 웹 페이지에 표시하는 방법을 자세히 소개합니다.
먼저 captcha.php라는 PHP 파일을 만들고 파일 확장자가 .php인지 확인해야합니다.
PHP 스크립트에서는 크기, 문자 수 및 가능한 문자 세트의 검증 코드 이미지를 설정하려면 일부 변수를 정의해야합니다. 코드 예는 다음과 같습니다.
$width = 120; // 검증 코드 사진의 너비
$height = 40; // 검증 코드 사진의 높이
$characters = 4; // 검증 코드 문자 수
$possibleChars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
다음으로 빈 이미지를 만들고 배경색, 텍스트 색상 및 글꼴과 같은 몇 가지 기본 속성을 설정합니다. 코드는 다음과 같습니다.
$image = imagecreatetruecolor($width, $height);
$backgroundColor = imagecolorallocate($image, 255, 255, 255); // 배경색:하얀색
$textColor = imagecolorallocate($image, 0, 0, 0); // 텍스트 색상:검은색
imagefill($image, 0, 0, $backgroundColor);
$font = 'path/to/your/font.ttf'; // 글꼴 파일 경로
이제 검증 코드 문자를 무작위로 생성하고 이미지에 그려야합니다. PHP는 캐릭터 배열에서 문자를 선택하는 데 사용할 수있는 임의 숫자를 생성 할 수있는 기능을 제공합니다. 샘플 코드는 다음과 같습니다.
$captcha = '';
for ($i = 0; $i < $characters; $i++) {
$randomChar = $possibleChars[rand(0, strlen($possibleChars) - 1)];
$captcha .= $randomChar;
$x = ($width / $characters) * $i + 10; // 캐릭터 위치
$y = $height / 2 + 15; // 텍스트 센터 오프셋
imagettftext($image, 20, 0, $x, $y, $textColor, $font, $randomChar);
}
후속 확인을 위해서는 생성 된 검증 코드를 PHP 세션에 저장해야합니다. 다음은 코드입니다.
session_start();
$_SESSION['captcha'] = $captcha;
마지막으로 이미지 출력 헤더 정보를 설정하고 확인 코드 이미지를 사용자에게 표시해야합니다.
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
위의 단계를 통해 간단한 검증 코드 시스템을 성공적으로 구현했습니다. 페이지가 새로 고침 될 때마다 사용자는 새 Verification Code 이미지가 표시되어 자동 공격을 방지하는 기능을 향상시킵니다. 실제 응용 프로그램에서는 사용자가 입력 한 검증 코드를 세션의 스토리지와 비교하여 사용자의 신원을 확인할 수 있습니다.
이는 귀하의 요구에 따라 더 확장하고 최적화 할 수있는 기본 PHP Verification Code 구현 예입니다.