이미지 검증 코드는 웹 사이트 등록, 로그인, 댓글 및 기타 시나리오에 널리 사용되며 양식 보안을 개선하고 자동 스크립트 공격에 저항하는 중요한 수단입니다. 이 기사에서는 PHP의 GD 그래픽 라이브러리에 의존하여 이미지 생성을 완료하고 세션 메커니즘을 결합하여 검증 코드 확인을 완료하기 위해 간단한 PHP 이미지 확인 코드 시스템을 단계별로 구현할 수 있습니다.
시작하기 전에 서버 환경에서 GD 라이브러리가 활성화되어 있는지 확인하십시오. GD 라이브러리는 PHP의 확장 모듈로 그래픽 이미지를 처리하고 이미지를 동적으로 생성하는 데 사용됩니다. phpinfo ()를 실행하여 확장자가 활성화되어 있는지 확인할 수 있습니다.
Captcha.php 라는 파일을 만들고 GD 라이브러리를 사용하여 임의의 숫자의 이미지를 동적으로 생성하고 생성 된 확인 코드 값을 후속 확인을 위해 $ _session 에 저장하십시오.
다음은 확인 코드 이미지 생성 코드입니다.
<?php
session_start();
// 임의의 4 자리 검증 코드를 생성합니다
$code = rand(1000, 9999);
// 검증 코드를 세션에 저장하십시오
$_SESSION['captcha_code'] = $code;
// 이미지 리소스를 만듭니다
$image = imagecreatetruecolor(120, 40);
// 배경색을 흰색으로 설정합니다
$bg_color = imagecolorallocate($image, 255, 255, 255);
imagefill($image, 0, 0, $bg_color);
// 간섭 지점을 추가하십시오
for ($i = 0; $i < 100; $i++) {
$point_color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
imagesetpixel($image, rand(0, 120), rand(0, 40), $point_color);
}
// 텍스트 색상을 검은 색으로 설정합니다
$text_color = imagecolorallocate($image, 0, 0, 0);
// 검증 코드 텍스트를 그립니다(글꼴 경로가 올바른지 확인하십시오)
imagettftext($image, 20, 0, 30, 30, $text_color, 'path/to/font.ttf', $code);
// 브라우저에 이미지를 출력합니다
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>
프론트 엔드 페이지에 검증 코드 이미지를 포함 시키려면 다음 방법을 사용하여 captcha.php 로 전화 할 수 있습니다.
<img src="captcha.php" alt="확인 코드">
이미지를 클릭하여 확인 코드를 다시로드하여 사용자 경험을 향상시키는 등 이미지에 새로 고침 기능을 추가하는 것이 좋습니다.
사용자가 양식을 제출하면 사용자가 입력 한 검증 코드는 입력이 올바른지 여부를 결정하기 위해 세션에 저장된 값과 비교해야합니다. 다음은 확인 코드 예입니다.
<?php
session_start();
if (isset($_POST['captcha'])) {
$user_input = $_POST['captcha'];
if ($user_input == $_SESSION['captcha_code']) {
// 확인이 성공적입니다,해당 작업을 수행하십시오
} else {
// 확인이 실패했습니다,재 입력하라는 프롬프트
}
}
?>
이 논리는 확인 작업이 필요한 사용자 등록, 로그인 확인 등과 같은 모든 양식 시나리오에 적합합니다.
이 자습서를 통해 PHP 및 GD 라이브러리를 사용하여 이미지 확인 코드를 구현하는 기본 방법을 배웠습니다. 이 솔루션은 임의 문자가 포함 된 이미지를 생성하고 세션 메커니즘을 결합하여 서버 측 확인을 완료하여 대부분의 중소형 프로젝트에 적합합니다.
예를 들어 다음과 같이 추가 확장을 할 수 있습니다.
검증 코드 문자 유형 추가 (번호 + 문자)
그래픽 간섭선을 추가하십시오
글꼴 크기와 각도를 동적으로 생성합니다
검증 코드 만료 시간 등을 추가하십시오.
합리적인 검증 코드 설계는 악의적 인 공격을 방지 할뿐만 아니라 시스템의 전반적인 보안을 향상시킵니다.