PHP에서 사용자 정의 캡처 및 연락처 양식을 만듭니다
원래 10 년 전에 출판 된이 튜토리얼은 임의의 캡처 생성을위한 최신 코드로 완전히 업데이트되었습니다. 토론 스레드의 많은 의견은 구식 코드를 나타냅니다.
프로세스 자동화는 컴퓨터의 속도와 정확도를 활용하여 코딩의 주요 이점입니다. 그러나이 힘은 스팸 또는 비밀번호 크래킹과 같은 악의적 인 활동에 오용 될 수 있습니다. 이 튜토리얼은 스팸 방지 기술에 중점을 둡니다.
연락처 양식이있는 웹 사이트를 고려하십시오. 합법적 인 사용자에게는 편리하지만 자동화 된 스팸 제출에 취약합니다. 봇은 스팸 링크가있는 연락처 양식, 포럼 또는 댓글 섹션을 침수 할 수 있습니다.
솔루션? 인간과 봇을 구별하는 시험 : PHP 형태와 통합 된 보안관. 전통적인 보안 문자는 이미지 내에서 왜곡 된 텍스트를 제시합니다. 인간은 그것을 읽을 수 있지만 봇은 일반적으로 할 수 없습니다. 원래 보판 텍스트에 대한 사용자 입력을 확인합니다. Captcha는 "컴퓨터와 인간에게 차별화하기 위해 완전히 자동화 된 공공 튜링 테스트"를 나타냅니다.
이 튜토리얼은 보안관을 연락처 양식으로 작성하고 통합하는 것을 보여줍니다.
보안 문자 만들기
PHP GD 라이브러리를 사용하겠습니다. 이전 자습서는 GD의 텍스트 및 모양 드로잉 기능을 다룹니다. 우리는 또한 보안 문자열에 대한 임의의 문자열을 생성합니다.
임의의 문자열을 생성합니다
이 코드는 captcha.php
에 있습니다. generate_string()
함수는 임의 문자열을 만듭니다. 원래 generate_string()
함수는보다 안전한 random_int()
로 대체되었습니다.
php $ permitted_chars = 'abcdefghijklmnopqrstuvwxyz'; 함수 generate_string ($ input, $ thinge = 5) { $ input_length = strlen ($ input); $ random_string = ''; for ($ i = 0; $ i
보안 문자 배경 생성
다음으로 5 가지 다양한 색상을 사용하여 Captcha 이미지 배경 (200x50 픽셀)을 생성합니다.
php $ image = imageCreatetRuecolor (200, 50); imageAntialias ($ image, true); $ colors = []; $ red = rand (125, 175); $ green = rand (125, 175); $ blue = rand (125, 175); for ($ i = 0; $ i
임의의 $red
, $green
및 $blue
값은 기본 색상을 결정합니다. 루프는 $colors
배열에 저장된 어두운 색조를 생성합니다. 가장 가벼운 색상은 배경을 채우고 후속 직사각형은 복잡성을 더합니다.
보안 문자열 렌더링
마지막으로, 우리는 임의의 문자열을 백그라운드에 그립니다. 문자 색상, y 좌표 및 회전은 추가 난이도로 무작위로 표시됩니다.
php $ black = imageColorAllother ($ image, 0, 0, 0); $ white = imageColorAllother ($ image, 255, 255, 255); $ textColors = [$ black, $ white]; $ fonts = [dirname (__ 파일 __). '\ fonts \ acme.ttf', dirname (__ file __). '\ fonts \ ubuntu.ttf', dirname (__ 파일 __). '\ fonts \ merriweather.ttf', dirname (__ 파일 __). '\ fonts \ playfairdisplay.ttf']; $ string_length = 6; $ captcha_string = generate_string ($ permitted_chars, $ string_length); for ($ i = 0; $ i
다운로드 된 글꼴은 문자 변형을 제공합니다. 패딩 (15 픽셀)이 추가되고 나머지 공간은 문자로 골고루 나뉩니다.
보안관을 접점 양식에 통합합니다
이제 Captcha를 접점 양식으로 통합하겠습니다 (기존 연락처 양식이 있다고 가정). 우리는 세션을 사용하여 보안 문자 텍스트를 저장하고 검증합니다.
완전한 captcha.php
코드 :
php session_start (); $ permitted_chars = 'abcdefghjklmnpqrstuvwxyz'; 함수 generate_string ($ input, $ thinge = 10) { $ input_length = strlen ($ input); $ random_string = ''; for ($ i = 0; $ i
연락처 양식에 "메시지 보내기"버튼 위에이 HTML을 추가하십시오.
<div class="elem-group"> <label for="captcha">보안 문자 텍스트를 입력하십시오</label> <img src="/static/imghw/default1.png" data-src="https://img.php.cn/" class="lazy" alt="PHP에서 사용자 정의 캡처 및 연락처 양식을 만듭니다"> <i class="fas fa-redo refresh-captcha"></i> </div>
이 JavaScript를 추가하여 보안 문자를 새로 고칠 수 있습니다.
var refreshButton = docum refreshButton.onClick = function () { document.querySelector ( ". Captcha-Image"). src = 'captcha.php?' 날짜 .now (); };
마지막으로, Captcha를 검증하려면 연락처 양식 처리 스크립트 ( contact.php
)를 업데이트하십시오.
php session_start (); if ($ _ post) { // ... (기존 양식 처리 코드) ... if (isset ($ _ post [ 'captcha_challenge']) && $ _post [ 'captcha_challenge'] == $ _session [ 'captcha_text'] { // ... (양식 제출을 처리) ... } 또 다른 { 에코 '<p> 당신은 부정확 한 보판물에 들어갔다.</p> ';; } } 또 다른 { 에코 '<p> 뭔가 잘못되었습니다</p> ';; } ?>
사용자의 입력이 세션 저장된 보안 문자 텍스트와 일치하는지 확인합니다.
결론
이 튜토리얼은 사용자 정의 PHP 보안관을 만들어 연락처 양식으로 통합하여 새로 고침 버튼으로 보안 및 사용자 경험을 향상 시켰습니다. 수학 문제와 같은 다른 보안관 방법을 사용하도록이를 조정할 수 있습니다. 보다 고급 기능은 Codecanyon의 플러그인을 사용하는 것을 고려하십시오.
위 내용은 PHP에서 사용자 정의 캡처 및 연락처 양식을 만듭니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

JWT는 주로 신분증 인증 및 정보 교환을 위해 당사자간에 정보를 안전하게 전송하는 데 사용되는 JSON을 기반으로 한 개방형 표준입니다. 1. JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 2. JWT의 작업 원칙에는 세 가지 단계가 포함됩니다. JWT 생성, JWT 확인 및 Parsing Payload. 3. PHP에서 인증에 JWT를 사용하면 JWT를 생성하고 확인할 수 있으며 사용자 역할 및 권한 정보가 고급 사용에 포함될 수 있습니다. 4. 일반적인 오류에는 서명 검증 실패, 토큰 만료 및 대형 페이로드가 포함됩니다. 디버깅 기술에는 디버깅 도구 및 로깅 사용이 포함됩니다. 5. 성능 최적화 및 모범 사례에는 적절한 시그니처 알고리즘 사용, 타당성 기간 설정 합리적,

세션 납치는 다음 단계를 통해 달성 할 수 있습니다. 1. 세션 ID를 얻으십시오. 2. 세션 ID 사용, 3. 세션을 활성 상태로 유지하십시오. PHP에서 세션 납치를 방지하는 방법에는 다음이 포함됩니다. 1. 세션 _regenerate_id () 함수를 사용하여 세션 ID를 재생산합니다. 2. 데이터베이스를 통해 세션 데이터를 저장하십시오.

PHP에서는 시도, 캐치, 마지막으로 키워드를 통해 예외 처리가 이루어집니다. 1) 시도 블록은 예외를 던질 수있는 코드를 둘러싸고 있습니다. 2) 캐치 블록은 예외를 처리합니다. 3) 마지막으로 블록은 코드가 항상 실행되도록합니다. 4) 던지기는 수동으로 예외를 제외하는 데 사용됩니다. 이러한 메커니즘은 코드의 견고성과 유지 관리를 향상시키는 데 도움이됩니다.

PHP에서 포함, 요구, 포함, 요구 사항 간의 차이는 다음과 같습니다. 1) 경고를 생성하고 계속 실행합니다. 2) 치명적인 오류를 생성하고 실행을 중지합니다. 이러한 함수의 선택은 파일의 중요성과 중복 포함을 방지 해야하는지 여부에 따라 다릅니다. 합리적 사용은 코드의 가독성과 유지 관리를 향상시킬 수 있습니다.

PHP에는 4 가지 주요 오류 유형이 있습니다. 1. NOTICE : 가장 작은 것은 정의되지 않은 변수에 액세스하는 것과 같이 프로그램을 방해하지 않습니다. 2. 경고 : 심각한 통지는 파일을 포함하지 않는 것과 같은 프로그램을 종료하지 않습니다. 3. FatalError : 가장 심각한 것은 기능을 부르는 것과 같은 프로그램을 종료합니다. 4. parseerror : 구문 오류는 엔드 태그를 추가하는 것을 잊어 버리는 것과 같이 프로그램이 실행되는 것을 방지합니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

HTTP 요청 방법에는 각각 리소스를 확보, 제출, 업데이트 및 삭제하는 데 사용되는 Get, Post, Put and Delete가 포함됩니다. 1. GET 방법은 리소스를 얻는 데 사용되며 읽기 작업에 적합합니다. 2. 게시물은 데이터를 제출하는 데 사용되며 종종 새로운 리소스를 만드는 데 사용됩니다. 3. PUT 방법은 리소스를 업데이트하는 데 사용되며 완전한 업데이트에 적합합니다. 4. 삭제 방법은 자원을 삭제하는 데 사용되며 삭제 작업에 적합합니다.

PHP는 서버 측에서 널리 사용되는 스크립팅 언어이며 특히 웹 개발에 적합합니다. 1.PHP는 HTML을 포함하고 HTTP 요청 및 응답을 처리 할 수 있으며 다양한 데이터베이스를 지원할 수 있습니다. 2.PHP는 강력한 커뮤니티 지원 및 오픈 소스 리소스를 통해 동적 웹 컨텐츠, 프로세스 양식 데이터, 액세스 데이터베이스 등을 생성하는 데 사용됩니다. 3. PHP는 해석 된 언어이며, 실행 프로세스에는 어휘 분석, 문법 분석, 편집 및 실행이 포함됩니다. 4. PHP는 사용자 등록 시스템과 같은 고급 응용 프로그램을 위해 MySQL과 결합 할 수 있습니다. 5. PHP를 디버깅 할 때 error_reporting () 및 var_dump ()와 같은 함수를 사용할 수 있습니다. 6. 캐싱 메커니즘을 사용하여 PHP 코드를 최적화하고 데이터베이스 쿼리를 최적화하며 내장 기능을 사용하십시오. 7
