백엔드 개발 PHP 튜토리얼 PHP 개발: 이미지 인증코드 기능 구현 방법

PHP 개발: 이미지 인증코드 기능 구현 방법

Sep 20, 2023 pm 04:00 PM
PHP 개발 기능 구현 이미지 인증 코드

PHP 개발: 이미지 인증코드 기능 구현 방법

PHP 개발: 이미지 인증코드 기능 구현 방법

WEB 개발에서는 로봇이나 악의적인 공격을 방지하기 위해 인증코드를 사용하여 사용자의 신원을 확인해야 하는 경우가 많습니다. 그 중 사진 인증 코드는 사용자를 효과적으로 식별할 수 있을 뿐만 아니라 사용자 경험을 향상시킬 수 있는 일반적인 유형의 인증 코드입니다. 이 글에서는 PHP를 사용하여 이미지 인증 코드 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다.

1. 인증 코드 이미지 생성

먼저 임의의 문자로 인증 코드 이미지를 생성해야 합니다. PHP는 이미지를 쉽게 생성할 수 있는 GD 라이브러리를 제공합니다. 다음은 인증코드 이미지를 생성하는 함수의 예시입니다.

function generateCaptchaImage($length = 4, $width = 120, $height = 40, $font = 'path/to/font.ttf'){
    $image = imagecreatetruecolor($width, $height);
    $bgColor = imagecolorallocate($image, 255, 255, 255);
    $textColor = imagecolorallocate($image, 0, 0, 0);
    $code = generateRandomCode($length); // 生成随机验证码

    imagefill($image, 0, 0, $bgColor);
    imagettftext($image, 20, 0, 10, 30, $textColor, $font, $code); // 在图片上写入验证码

    // 添加干扰线
    for ($i = 0; $i < 5; $i++) {
        $color = imagecolorallocate($image, rand(0, 255), rand(0, 255), rand(0, 255));
        imageline($image, rand(0, $width), rand(0, $height), rand(0, $width), rand(0, $height), $color);
    }

    // 输出图像
    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
    
    return $code;
}

function generateRandomCode($length = 4){
    $characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890';
    $code = '';
    
    for ($i = 0; $i < $length; $i++) {
        $code .= $characters[rand(0, strlen($characters) - 1)];
    }
    
    return $code;
}
로그인 후 복사

위의 generateCaptchaImage 함수는 인증코드 이미지를 생성하는 데 사용되며 인증코드 문자열을 함수 반환값으로 반환합니다. generateCaptchaImage用于生成验证码图片,并将验证码字符串作为函数返回值。

二、显示验证码图片与验证用户输入

在要显示验证码的页面中,可以通过<img src="/static/imghw/default1.png" data-src="captcha.php" class="lazy" alt="PHP 개발: 이미지 인증코드 기능 구현 방법" >标签来显示验证码图片,并使用session来保存验证码。

session_start();
$captcha = generateCaptchaImage();
$_SESSION['captcha'] = $captcha;
로그인 후 복사

创建一个验证码输入框和提交按钮:

<form action="verify.php" method="POST">
  <img src="/static/imghw/default1.png"  data-src="captcha.php"  class="lazy" alt="captcha image">
  <input type="text" name="captcha" placeholder="请输入验证码">
  <button type="submit">提交</button>
</form>
로그인 후 복사

验证用户输入的验证码:

session_start();
$captcha = $_SESSION['captcha'];

if(isset($_POST['captcha']) && $_POST['captcha'] == $captcha){
    // 验证成功
    echo "验证码输入正确!";
} else {
    // 验证失败
    echo "验证码输入错误!";
}
로그인 후 복사

三、验证码校验和过期处理

为了增强验证码的安全性,我们还可以添加过期时间和校验码处理。以下是一个增强版的验证码验证示例:

session_start();
if(isset($_POST['captcha']) && isset($_SESSION['captcha'])){
    $captcha = $_SESSION['captcha'];
    $inputCaptcha = $_POST['captcha'];
    
    if(time() - $_SESSION['captcha_time'] > 300){ // 验证码过期时间为5分钟
        echo "验证码已过期,请重新输入!";
        return;
    }

    if(strtolower($inputCaptcha) === strtolower($captcha)){
        echo "验证码输入正确!";
    } else {
        echo "验证码输入错误!";
    }
} else{
    echo "请输入验证码!";
}
로그인 후 복사

在生成验证码时,将当前时间也保存到$_SESSION

2. 인증코드 이미지 표시 및 사용자 입력 확인

인증코드가 표시될 페이지에서 <img alt="PHP 개발: 이미지 인증코드 기능 구현 방법" > 태그를 통해 인증코드 이미지를 표시한 후 사용하시면 됩니다. 세션을 통해 인증코드를 저장하세요.

session_start();
$captcha = generateCaptchaImage();
$_SESSION['captcha'] = $captcha;
$_SESSION['captcha_time'] = time();
로그인 후 복사
인증코드 입력란 생성 및 제출 버튼:

rrreee

사용자가 입력한 인증코드 확인:

rrreee

3. 인증코드 확인 및 만료 처리🎜🎜인증코드 보안을 강화하기 위해 만료 시간 및 체크섬 처리도 추가할 수 있습니다. 다음은 인증코드 확인 예시를 개선한 버전입니다. 🎜rrreee🎜인증코드 생성 시 현재 시간도 $_SESSION에 저장됩니다. 🎜rrreee🎜위 코드는 만료시간을 확인하는 코드입니다. 및 확인 코드를 확인한 후 해당 프롬프트 정보가 출력됩니다. 🎜🎜요약: 🎜🎜위의 단계를 통해 PHP를 사용하여 이미지 인증 코드 기능을 구현할 수 있습니다. 먼저 임의의 문자가 포함된 인증 코드 이미지가 생성되어 페이지에 표시됩니다. 이후, 사용자가 입력한 인증코드와 서버에 저장된 인증코드를 비교하여 입력이 올바른지 확인합니다. 동시에 인증코드의 보안성을 높이기 위해 만료시간을 설정하고 인증코드 처리를 추가할 수 있습니다. 인증 코드 기능의 구현은 시스템 보안 및 사용자 경험을 향상시키기 위해 사용자 등록 및 로그인과 같은 민감한 작업에 사용될 수 있습니다. 🎜🎜참고: 위 코드가 정상적으로 실행되기 위해서는 GD 라이브러리가 올바르게 설치되었는지 확인해야 합니다. 🎜

위 내용은 PHP 개발: 이미지 인증코드 기능 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Chrome에 인증코드 이미지가 표시되지 않으면 어떻게 해야 하나요? Chrome에 인증코드 이미지가 표시되지 않으면 어떻게 해야 하나요? Mar 13, 2024 pm 08:55 PM

Google 크롬에 인증 코드 이미지가 표시되지 않으면 어떻게 해야 하나요? Google Chrome을 사용하여 웹페이지에 로그인할 때 인증 코드가 필요한 경우가 있습니다. 일부 사용자는 이미지 인증 코드를 사용할 때 Chrome에서 이미지 내용을 제대로 표시할 수 없다는 사실을 발견합니다. 무엇을 해야 합니까? 아래 편집기에서 Chrome 인증 코드가 표시되지 않는 문제를 해결하는 방법을 소개하겠습니다. 모든 분들께 도움이 되길 바랍니다! 방법 소개: 1. 소프트웨어를 입력하고 오른쪽 상단 모서리에 있는 "추가" 버튼을 클릭한 다음 아래 옵션 목록에서 "설정"을 선택하여 들어갑니다. 2. 새 인터페이스에 들어간 후 왼쪽의 "개인정보 설정 및 보안" 옵션을 클릭하세요. 3. 오른쪽의 '웹사이트 설정'을 클릭하세요.

Laravel을 사용하여 이미지 처리 기능을 구현하는 방법 Laravel을 사용하여 이미지 처리 기능을 구현하는 방법 Nov 04, 2023 pm 12:46 PM

Laravel을 사용하여 이미지 처리 기능을 구현하려면 특정 코드 예제가 필요합니다. 요즘 인터넷의 발달로 이미지 처리는 웹 사이트 개발에 없어서는 안될 부분이 되었습니다. Laravel은 이미지 처리를 위한 다양한 편리한 도구를 제공하는 인기 있는 PHP 프레임워크입니다. 이 글에서는 Laravel을 사용하여 이미지 처리 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. LaravelInterventionImageInterven 설치

PHP 개발에 Memcache를 어떻게 사용하나요? PHP 개발에 Memcache를 어떻게 사용하나요? Nov 07, 2023 pm 12:49 PM

웹 개발에서는 웹사이트 성능과 응답 속도를 향상시키기 위해 캐싱 기술을 사용해야 하는 경우가 많습니다. Memcache는 모든 데이터 유형을 캐시할 수 있고 높은 동시성 및 고가용성을 지원하는 널리 사용되는 캐싱 기술입니다. 이 기사에서는 PHP 개발에 Memcache를 사용하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. Memcache 설치 Memcache를 사용하려면 먼저 서버에 Memcache 확장 프로그램을 설치해야 합니다. CentOS 운영 체제에서는 다음 명령을 사용할 수 있습니다.

uniapp을 사용하여 이미지 회전 기능 구현 uniapp을 사용하여 이미지 회전 기능 구현 Nov 21, 2023 am 11:58 AM

uniapp을 사용하여 이미지 회전 기능을 구현합니다. 모바일 애플리케이션 개발에서 사진을 촬영한 후 각도를 조정해야 하거나 촬영 후 카메라가 회전하는 것과 유사한 효과가 필요한 경우가 종종 있습니다. 사진이 달성됩니다. 이 글에서는 uniapp 프레임워크를 사용하여 이미지 회전 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. uniapp은 Vue.js를 기반으로 하는 크로스 플랫폼 개발 프레임워크로, iOS, Android, H5 및 기타 플랫폼용 애플리케이션을 동시에 개발하고 게시할 수 있습니다. 유니앱에서 구현

Hotcoin Global 거래소에 등록하는 방법 Hotcoin Global 앱을 다운로드하는 방법은 무엇입니까? Hotcoin Global 거래소에 등록하는 방법 Hotcoin Global 앱을 다운로드하는 방법은 무엇입니까? Aug 16, 2024 pm 05:18 PM

HotcoinGlobal Exchange 등록 방법: 공식 웹사이트 방문: https://www.hotcoin.global/ 등록 방법 선택: 이메일 또는 휴대폰 번호 등록 정보(이메일 또는 휴대폰 번호, 비밀번호, 인증 코드) 입력 동의 이용약관 동의 및 인증번호 획득 인증번호를 입력하시면 등록이 완료됩니다.

Node.js 개발: 사용자 권한 관리 기능을 구현하는 방법 Node.js 개발: 사용자 권한 관리 기능을 구현하는 방법 Nov 08, 2023 am 09:17 AM

제목: Node.js 개발: 사용자 권한 관리 기능 구현 및 코드 예시 요약: 웹 애플리케이션과 시스템의 복잡성이 계속 증가함에 따라 사용자 권한 관리는 무시할 수 없는 중요한 기능이 되었습니다. 이 기사에서는 Node.js 개발에서 사용자 권한 관리 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 소개: 효율적이고 가벼운 개발 플랫폼인 Node.js에는 광범위한 애플리케이션 시나리오가 있습니다. 많은 Node.js 애플리케이션 개발에서 사용자 권한 관리는 필수적인 기능인 경우가 많습니다.

확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. 확실한 원칙과 PHP 개발에 적용되는 방법을 설명하십시오. Apr 03, 2025 am 12:04 AM

PHP 개발에서 견고한 원칙의 적용에는 다음이 포함됩니다. 1. 단일 책임 원칙 (SRP) : 각 클래스는 하나의 기능 만 담당합니다. 2. Open and Close Principle (OCP) : 변경은 수정보다는 확장을 통해 달성됩니다. 3. Lisch의 대체 원칙 (LSP) : 서브 클래스는 프로그램 정확도에 영향을 미치지 않고 기본 클래스를 대체 할 수 있습니다. 4. 인터페이스 격리 원리 (ISP) : 의존성 및 사용되지 않은 방법을 피하기 위해 세밀한 인터페이스를 사용하십시오. 5. 의존성 반전 원리 (DIP) : 높고 낮은 수준의 모듈은 추상화에 의존하며 종속성 주입을 통해 구현됩니다.

PHP 개발에서 버전 제어 및 코드 협업을 구현하는 방법은 무엇입니까? PHP 개발에서 버전 제어 및 코드 협업을 구현하는 방법은 무엇입니까? Nov 02, 2023 pm 01:35 PM

PHP 개발에서 버전 제어 및 코드 협업을 구현하는 방법은 무엇입니까? 인터넷과 소프트웨어 산업의 급속한 발전으로 인해 소프트웨어 개발에서 버전 관리와 코드 협업이 점점 더 중요해지고 있습니다. 독립 개발자이든 개발 팀이든 코드 변경을 관리하고 협업하려면 효과적인 버전 제어 시스템이 필요합니다. PHP 개발에는 Git 및 SVN과 같이 일반적으로 사용되는 여러 버전 제어 시스템 중에서 선택할 수 있습니다. 이 기사에서는 PHP 개발에서 버전 제어 및 코드 협업을 위해 이러한 도구를 사용하는 방법을 소개합니다. 첫 번째 단계는 자신에게 맞는 것을 선택하는 것입니다.

See all articles