웹 사이트 개발 과정에서 자동화 된 악성 공격 또는 자동 등록을 방지하기 위해 이미지 확인 코드를 사용하여 확인합니다. 이 기사에서는 PHP를 사용하여 이미지 검증 코드를 생성하고 확인하고 관련 코드 예제를 제공하는 방법을 보여줍니다.
이미지 확인 코드를 생성하는 핵심은 임의의 검증 코드 문자열을 생성하여 그림에 그려야합니다. PHP 코드 예는 다음과 같습니다.
<?php
session_start();
// 이미지 크기를 선언합니다
$image_width = 100;
$image_height = 40;
// 이미지 리소스를 만듭니다
$image = imagecreatetruecolor($image_width, $image_height);
// 배경색을 생성합니다
$bg_color = imagecolorallocate($image, mt_rand(200, 255), mt_rand(200, 255), mt_rand(200, 255));
imagefill($image, 0, 0, $bg_color);
// 검증 코드 문자열을 생성합니다
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789';
$code = '';
for ($i = 0; $i < 4; $i++) {
$code .= $chars[mt_rand(0, strlen($chars) - 1)];
}
// 확인 코드 문자열을 저장하십시오session가운데,후속 확인을 위해
$_SESSION['captcha'] = $code;
// 검증 코드 텍스트를 그립니다
$font_file = 'path_to_your_font.ttf'; // 자신의 글꼴 파일 경로로 교체하십시오
$text_color = imagecolorallocate($image, 0, 0, 0); // 텍스트 색상은 검은 색입니다
imagettftext($image, 20, 0, 10, 30, $text_color, $font_file, $code);
// 출력 사진
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
위의 코드는 먼저 ImageCreatetRuecolor 함수를 통해 지정된 너비와 높이의 이미지 리소스를 만듭니다. 다음으로, 배경색은 ImageColorAllogate 함수를 통해 생성되며 전체 이미지가 채워집니다. 마지막으로, imageTtfText 함수를 사용하여 이미지에 검증 코드 문자열이 그려지며, 마지막으로 imagePNG 함수를 사용하여 생성 된 이미지가 출력됩니다.
이미지 확인 코드를 확인할 때는 사용자가 입력 한 확인 코드를 세션에 저장된 확인 코드와 비교해야합니다. 다음은 확인 코드 확인을위한 PHP 코드 예제입니다.
<?php
session_start();
// 사용자가 입력 한 확인 코드 문자열을 가져옵니다
$user_input = $_POST['captcha'];
// 저장하십시오session가운데的验证码字符串
$server_code = $_SESSION['captcha'];
// 사용자가 입력 한 확인 코드가 저장된 확인 코드와 일치하는지 확인하십시오.
if (strcasecmp($user_input, $server_code) === 0) {
// 확인 코드가 정확합니다,해당 작업을 수행하십시오
echo '확인 코드가 정확합니다';
} else {
// 확인 코드 오류,사용자에게 다시 입력하라는 메시지를 표시합니다
echo '확인 코드 오류';
}
?>
위의 코드는 먼저 세션을 활성화 한 다음 $ _post 배열을 통해 사용자가 입력 한 확인 코드를 얻은 다음 $ _session 배열을 통해 세션에 저장된 확인 코드 문자열을 얻습니다. strcasecmp 함수를 통해 두 줄을 비교하십시오. 일치하면 확인 코드가 정확하고 해당 작업을 수행 할 수 있음을 의미합니다. 일치하지 않으면 확인 코드가 잘못되었음을 알 수 있습니다.
위의 두 PHP 코드를 통해 이미지 검증 코드의 생성 및 검증 기능을 성공적으로 인식 할 수 있습니다. 확인 코드를 생성하는 코드는 Captcha.php와 같은 별도의 파일로 저장 될 수 있으며, 요청시 파일에 액세스하여 생성 할 수 있습니다. 확인 코드를 검증하는 코드는 양식 제출의 처리 페이지에 배치 할 수 있습니다.
실제 애플리케이션에서 위의 기능 외에도 간섭선 추가, 암호화 검증 코드 등과 같은 필요에 따라 몇 가지 보안 조치를 추가 할 수도 있습니다.