목차
결론
어떻게 내포프 차를보다 안전하게 만들 수 있습니까?
보안치가 나타나지 않으면있을 수 있습니다. 몇 가지 이유. 한 가지 일반적인 이유는 GD 라이브러리가 PHP 설치에 설치되거나 활성화되지 않았기 때문입니다. function_exists ( 'gd_info') 함수를 사용하여이를 확인할 수 있습니다. False를 반환하면 GD가 활성화되지 않습니다. 또 다른 이유는 PHP 코드의 오류 일 수 있습니다. 실 새 보안 문자를 생성하기 위해 서버에 요청을 보내는 JavaScript 함수를 작성해야합니다. 그런 다음 서버는 새로운 Captcha 이미지로 응답 한 다음 전체 페이지 재 장전없이 웹 페이지에서 업데이트됩니다.
연락처 양식에 보안 문자를 추가하려면 양식의 HTML 및 PHP 코드를 수정하는 것이 포함됩니다. HTML에서는 보안 문자에 대한 이미지 태그와 사용자가 CARTCHA를 입력 할 입력 필드를 추가해야합니다. PHP에서 보안 문자를 생성하고 사용자의 입력을 검증해야합니다.
시각 장애가있는 사용자가 내포프를 액세스 할 수있게하려면 어떻게 보안 문자에 액세스 할 수있게 만들 수 있습니까?
백엔드 개발 PHP 튜토리얼 PHP 및 GD가있는 간단한 보안 문자

PHP 및 GD가있는 간단한 보안 문자

Feb 22, 2025 am 09:13 AM

PHP 및 GD가있는 간단한 보안 문자

지금까지, 우리는 모두 온라인 양식으로 보안 문자 이미지를 만났습니다. 보안관은 필요한 악이며,이 기사는 그들이 어떻게 만들어 졌는지 가르쳐 줄 것입니다. PHP 및 GD가있는 간단한 보안 문자 Recaptcha와 같은 보안 문자를위한 자동 제 3 자 솔루션이 더 좋지만이 튜토리얼은 그러한 기술이 실제로 어떻게 작동하는지 설명하고 입증하는 것입니다. 우리는 CARTCHA가 실제로 무엇인지 설명하지 않을 것입니다. 일반적인 지식으로 여겨지고 이미 다른 곳에서 더 자세히 다루었습니다.

. 키 테이크 아웃

PHP의 GD (Graphics Draw) 라이브러리는 일반적으로 모양, 왜곡 및 텍스트로 구성된 보안 문자 이미지를 만드는 데 사용될 수 있습니다. CARTCHA 생성 과정에는 빈 이미지를 표시하고 모양을 생성하고 임의의 선과 점을 생성하고 임의의 텍스트를 생성하는 것이 포함됩니다. CAPTCHA 유효성 검사 프로세스에는 사용자의 입력을 세션 변수에 저장된 CARTCHA 문자열과 비교하는 것이 포함됩니다. 입력이 보안 문자열과 일치하면 사용자의 응답이 올바른 것으로 간주됩니다. 보안관 이미지가 항상 새로 고쳐지고 브라우저 캐시에서 검색되지 않도록하기 위해 Php의 내장 Time () 함수를 사용하여 고유 이름을 이미지에 할당 할 수 있습니다. 이 튜토리얼은 간단한 캡처를 만드는 방법을 보여 주지만 생산 응용 프로그램을 위해 Recaptcha와 같은보다 안전하고 액세스 가능한 타사 솔루션을 사용하는 것이 좋습니다.

드로잉 캡처 진행하기 전에 GD (Graphics Draw) 라이브러리가 설치되어 있어야합니다. 이 라이브러리를 사용하면 내장 PHP 기능을 통해 그래픽 및 이미지를 그리도록 할 수 있습니다. 설치하려면 sudo apt-get 설치 PHP5-GD를 실행하거나 비 untu 기반 운영 체제에있는 경우 지침을 따르십시오. CAPTCHA는 일반적으로 모양, 왜곡 및 텍스트의 세 가지로 구성됩니다.

아래에 언급 된 단계를 따르겠습니다 :

브라우저에 빈 이미지를 표시합니다.

<.> 모양을 만듭니다.
    임의의 선을 생성합니다.
  • 랜덤 도트를 생성합니다.
  • 임의의 텍스트를 생성합니다
  • 빈 이미지를 표시 이미지는 "IMG"태그를 사용하여 외부 이미지가 표시되는 것처럼 HTML에 의해 처리됩니다. 두 가지 기능이 사용됩니다 - 하나는 이미지를 생성하고 다른 하나는 표시를위한 것입니다.
  • 첫 번째 줄은 우리 페이지에서 사용자 세션의 시작을 나타냅니다.
  • > display () 함수에는 브라우저에 이미지를 표시하는 일반적인 HTML 코드 외에는 아무것도 없습니다. 그 외에는 출력이 제시 될 수 있도록 스타일 만 수행됩니다.
  • <_> create_image () 함수 내에서 변수는 이미지의 너비와 길이를 인수로 가져 오는 imageCreateTrecolor () 함수에 의해 리턴 된 이미지를 참조하는 데 사용됩니다. ImagePng ()는 지정된 이름과 경로의 PNG 이미지를 만듭니다 (동일한 디렉토리).

    첫 번째 단계 이후의 검은 이미지가 출력이 될 것입니다.

    imagepng () 함수는 우리의 기능의 마지막 줄이 될 것이며 다음 단계는이 함수가 호출하기 전에 create_image () 함수에 삽입되어야합니다. 그렇지 않으면 적용되지 않습니다.

    모양을 만듭니다 보안치에 대해 모든 모양을 선택할 수 있습니다. ImageFilledRectangle () 함수를 사용하여 사각형을 선택합니다. 이미지 참조, X-POS 시작, Y-POS 시작, X-POS 종료, y-pos 및 배경색의 5 가지 인수가 필요합니다. 타원형 캡처를 생성하기 위해 타원에 해당 함수를 사용할 수 있습니다.

      imageColorAllocate () 함수는 색상의 RGB 조합을 인수로 사용하므로 변수에 색상을 할당합니다. 다음 코드는 create () 함수에 추가됩니다. PHP 및 GD가있는 간단한 보안 문자

    이 단계 후에 이전 이미지가 흰색이됩니다

    임의의 선을 생성합니다 이제, 우리는 실제로 왜곡을 보안 문자의 일부로 만드는 것으로 시작합니다. PHP에서, 라인은 시작점 (x1, y1)에서 종점 (x2, y2)까지 생성된다. 이제 선이 상자의 양쪽 끝을 만지기를 원할 때 좌표를 , 즉 상자의 전체 너비로 유지합니다. 좌표가 무작위로 생성됩니다. 이것은 하나의 임의의 줄만 생성합니다. 우리는이 기능을 루프의 내부에 넣어 여러 줄을 생성합니다.

    imageline () 함수는 x1, x2, y1, y2가 줄의 이미지 참조 및 색상과는 별도로 순서대로 인수로 조정됩니다. 이전 단계에서 배경색이 할당 된 것처럼 선 색상이 할당되었습니다.

    y 좌표는 rand ()*p로 주어집니다. 이것은 우리 상자의 높이이며 항상 50 세 미만의 값을 반환합니다. 대안으로 rand (0,50)를 사용할 수 있습니다. 동일한 출력 범위를 생성합니다.

    랜덤 도트를 생성합니다 임의의 도트는 랜덤 라인과 같은 방식으로 생성됩니다. 사용 된 기능은 ImagesEtpixel ()입니다. 이 함수는 점이 상자에 배치되는 좌표 값을 취합니다.
    <span><span><?php
    </span></span><span><span>session_start();
    </span></span><span><span>?></span>
    </span>
        <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
    </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
    </span>
        <span><span><?php
    </span></span><span>    <span>create_image();
    </span></span><span>    <span>display();
    </span></span><span>    <span>/***** definition of functions *****/
    </span></span><span>    <span>function display()
    </span></span><span>    <span>{
    </span></span><span>        <span>?></span>
    </span>
            <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
    </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
    </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
    </span>
                <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
    </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
    </span>            <span><span><span></div</span>></span>
    </span>            //div1 ends
            <span><span><span></div</span>></span>                          //div2 ends
    </span>
        <span><span><?php
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>function  create_image()
    </span></span><span>    <span>{
    </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
    </span></span><span>        <span>imagepng($image, "image.png");
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>?></span>
    </span>    <span><span><span></body</span>></span>
    </span><span><span><?php
    </span></span><span><span>?></span></span>

    x 좌표는 rand ()* 0을 사용하여 무작위로 생성되며 이것은 우리 박스의 너비이므로 항상 200 세 미만의 값을 반환합니다. 대안으로 rand (0,200)를 사용할 수 있습니다. 동일한 출력 범위를 생성합니다. y 좌표는 선 단계에서 생성됩니다.

    PHP 및 GD가있는 간단한 보안 문자 임의의 텍스트를 생성 우리는 문자열의 위치를 ​​무작위로 가리켜 (하위 및 대문자 모두에 알파벳이 포함되어 있음) 변수 $ LETTER

    에 할당 할 것입니다.

    루프 안에 넣으면 처럼 보입니다

    우리는 선을 설명 할 것입니다

    다음 섹션에서
    .
    <span><span><?php
    </span></span><span><span>session_start();
    </span></span><span><span>?></span>
    </span>
        <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
    </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
    </span>
        <span><span><?php
    </span></span><span>    <span>create_image();
    </span></span><span>    <span>display();
    </span></span><span>    <span>/***** definition of functions *****/
    </span></span><span>    <span>function display()
    </span></span><span>    <span>{
    </span></span><span>        <span>?></span>
    </span>
            <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
    </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
    </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
    </span>
                <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
    </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
    </span>            <span><span><span></div</span>></span>
    </span>            //div1 ends
            <span><span><span></div</span>></span>                          //div2 ends
    </span>
        <span><span><?php
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>function  create_image()
    </span></span><span>    <span>{
    </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
    </span></span><span>        <span>imagepng($image, "image.png");
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>?></span>
    </span>    <span><span><span></body</span>></span>
    </span><span><span><?php
    </span></span><span><span>?></span></span>
    imageString () 함수는 텍스트를 우리의 이미지에 씁니다. 6 개의 인수가 있습니다 :

    <span>$background_color = imagecolorallocate($image, 255, 255, 255);  
    </span><span>imagefilledrectangle($image,0,0,200,50,$background_color);</span>
    이미지 참조.

    텍스트의 글꼴 크기 (최대 5 개일 수 있음).

    x 좌표 (모든 알파벳에 비례하여 변경).
    <span>$line_color = imagecolorallocate($image, 64,64,64); 
    </span><span>for($i=0;$i<10;$i++) {
    </span>    <span>imageline($image,0,rand()%50,200,rand()%50,$line_color);
    </span><span>}</span>
    y 좌표 (무작위로 변경할 수는 있지만 동일하게 유지).

    실제 문자열을 쓸 수 있습니다.

    텍스트의 글꼴.

    더 큰 글꼴과 다른 글꼴 스타일을 원한다면 imagetftext () 함수를 사용할 수도 있습니다. 텍스트의 각도와 글꼴 스타일에 대해 2 개의 추가 인수가 필요합니다.
      x- 코디네이트 계산은 검사에 의해 수행됩니다. 대략적으로, 문자는 약 35 픽셀 (5 ($ i*30))로, 여기서 $ i = 0,1,2,3,4,5,6. 이 값이 15-20px 정도를 유지했다면 두 글자가 겹칠 가능성이 있었기 때문입니다. 값이 40px 이상인 경우 글자는 상자에 모두 맞지 않을 것입니다. 이것은 6 개의 알파벳 캡트 차 텍스트를 생성합니다. 우리는 색상, y 좌표 등과 같은 단순성으로 인해 일정하게 유지 된 측면을 변경하여 항상 더 많은 임의성을 만들 수 있습니다. 최종 보안 문자는 처럼 보일 것입니다

  • 보안 문자로 작성된 텍스트는 페이지를 새로 고칠 때마다 변경됩니다.
  • 픽셀로 디자인을 만들거나 색상이나 크기를 변경하여 더 많은 임의성을 달성 할 수 있습니다.
  • 검증 여기에서 사용자의 응답이 취해지고 처리 후 답장을받습니다. 처음에는 입력 텍스트 상자와 제출 버튼으로 간단한 양식이 만들어집니다. 복잡한 웹 애플리케이션의 요구 사항에 따라 보안 문자를 처리하는 방법에는 여러 가지가있을 수 있습니다. 그러나이 예를 위해 간단하게 유지하면 같은 페이지에서 처리합니다.
  • 이전 코드 스 니펫에서 설명 할 수없는 두 줄이 지금 작동합니다.
  • $ Word. = $ Letter; - 연결 연산자. 6 글자 단어를 생성하여 모든 개별 문자를 차례로 추가하는 데 사용됩니다.
  • $ _ 세션 [ 'captcha_string'] = $ Word; Captcha 문자열은 검증 목적으로 사용될 세션 변수에 저장됩니다.
  • 우리는 형태와 같은 구조를 추가하기 위해 display ()의 정의를 변경합니다. 2 개의 제출 버튼이 사용됩니다. 하나는 문자열을 제출하고 다른 하나는 페이지를 새로 고치기 위해 사용됩니다. 두 개의 닫는 div 태그 사이에 다음 줄이 추가됩니다 (이전 디스플레이 () 함수의 주석 참조) .
    <span><span><?php
    </span></span><span><span>session_start();
    </span></span><span><span>?></span>
    </span>
        <span><span><span><title</span>></span>demo.php<span><span></title</span>></span>
    </span>    <span><span><span><body</span> <span>style<span>="<span>background-color:#ddd; </span>"</span></span>></span>
    </span>
        <span><span><?php
    </span></span><span>    <span>create_image();
    </span></span><span>    <span>display();
    </span></span><span>    <span>/***** definition of functions *****/
    </span></span><span>    <span>function display()
    </span></span><span>    <span>{
    </span></span><span>        <span>?></span>
    </span>
            <span><span><span><div</span> <span>style<span>="<span>text-align:center;</span>"</span></span>></span>
    </span>            <span><span><span><h3</span>></span>TYPE THE TEXT YOU SEE IN THE IMAGE<span><span></h3</span>></span>
    </span>            <span><span><span><b</span>></span>This is just to check if you are a robot<span><span></b</span>></span>
    </span>
                <span><span><span><div</span> <span>style<span>="<span>display:block;margin-bottom:20px;margin-top:20px;</span>"</span></span>></span>
    </span>                <span><span><span><img</span> src<span>="image.png"</span>></span>
    </span>            <span><span><span></div</span>></span>
    </span>            //div1 ends
            <span><span><span></div</span>></span>                          //div2 ends
    </span>
        <span><span><?php
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>function  create_image()
    </span></span><span>    <span>{
    </span></span><span>        <span>$image = imagecreatetruecolor(200, 50);
    </span></span><span>        <span>imagepng($image, "image.png");
    </span></span><span>    <span>}
    </span></span><span>
    </span><span>    <span>?></span>
    </span>    <span><span><span></body</span>></span>
    </span><span><span><?php
    </span></span><span><span>?></span></span>
    더 이동하기 전에 우리는 언제 표시 해야하는시기와 입력 상자를 표시하지 않아야하는지 알아야합니다.

    만 표시됩니다

    페이지가 방금로드 된 경우.
      사용자의 답변이 틀린 경우 .
    1. 제출 버튼을 클릭 할 때마다‘1’으로 설정된 $ 플래그를 사용하여 첫 번째 조건이 충족됩니다. 처음에는 다른 값으로 설정되었습니다. 두 번째 조건은 세션 변수에 저장된 값이 사용자 입력과 동일한 지 확인하여 달성됩니다 (아래 코드 참조).
    2. 이를 달성하기 위해, 우리는 기사의 시작 부분에서 시작 단계의 다음 줄을 대체 할 것입니다.
    with :

    함수 create_image () 및 display ()는 위에서 논의 된 두 가지 조건에 따라 호출됩니다.

    우리는 이전 페이지의 세션 변수가 필요하므로 세션이 여기에서 파괴되지 않습니다. 브라우저 창이 닫히면 세션이 자동으로 파괴됩니다.

    보안관은 처럼 보일 것입니다

    <span>$background_color = imagecolorallocate($image, 255, 255, 255);  
    </span><span>imagefilledrectangle($image,0,0,200,50,$background_color);</span>

    입력이 올바르지 않으면 사용자 만 다시 프롬프트됩니다.

    <span>$line_color = imagecolorallocate($image, 64,64,64); 
    </span><span>for($i=0;$i<10;$i++) {
    </span>    <span>imageline($image,0,rand()%50,200,rand()%50,$line_color);
    </span><span>}</span>
    입력이 올바른 경우 사용자는 메시지가 표시됩니다.

    사소한 경고가 있습니다 - 사용자가 뒤로 버튼을 누르면 브라우저 캐시에 이미 존재하는 이미지는 다시로드되지 않고 페이지는 그렇습니다. 게시물 요청에서 브라우저 뒤로 버튼은 "문서 만료 된"페이지가 표시되지만 요청이 발생하면 이미지가 재생되지 않습니다.

    . 솔루션은 간단합니다 - 매번 이미지의 고유 한 이름을 만들어 브라우저가 캐시에서 찾을 수 없습니다. 브라우저에 표시하고 표시하는 동안 내장 Time () 함수로 이미지 이름으로 내장 된 고유 한 문자열을 추가합니다. 세션을 시작한 곳 바로 아래 에이 줄을 추가하십시오.

    display () 함수에서 img src 태그를 로 바꾸십시오.

    및 create_image () 함수에서 png 이미지를 만든 부분도 로 대체됩니다.

    이미지는 이제 image39342015.png와 같은 것입니다. 이 절차는 페이지가 새로 고쳐지면서 여러 번 디스크 공간을 낭비 할 수 있으므로 이미지를 생성 할 수 있으므로 이미지를 만들기 전에 PNG 확장의 다른 모든 이미지가 삭제되도록해야합니다. ImagePng () 함수가 호출되기 직전에 다음을 추가하십시오.

    PHP 및 GD가있는 간단한 보안 문자 프로덕션 앱에서 보안 문자 이미지가 저장되는 폴더를 격리해야합니다. 다른 유용한 이미지도 삭제 될 수 있습니다.

    여기에서 전체 코드를 다운로드하십시오. <p></p> <h2 id="결론"> 결론 </h2> <of> PHP에서 다양한 유형의 보안 문자를 만드는 것은 매우 쉽습니다. 이 기사는 표준 보안 문자를 만드는 데 사용되는 세 가지 기본 사항 (모양, 왜곡 및 텍스트)를 다루었습니다. 이 기사는 개념 증명이며, 여기에 제시된 코드는 생산에 사용해서는 안됩니다. 특히 Recaptcha와 같은 훌륭한 대안이 있기 때문에 청각 장애가있는 사람들을 돕기 위해 사운드 출력을 지원합니다. 이 기사가 흥미로운 것을 알았기를 바랍니다. 아래에 귀하의 의견과 피드백을 남겨주세요! <p> <questions> php gd 에 대한 자주 묻는 질문 (FAQ) <custom> 내 담긴 외관을 사용자 정의 할 수 있습니까? <h2> </h2> PHP 코드를 수정하여 보안 문자의 모양을 사용자 정의 할 수 있습니다. 글꼴, 색상, 크기 및 보안 문자의 배경을 변경할 수도 있습니다. 예를 들어 글꼴을 변경하려면 imageTtfText () 함수를 사용하고 매개 변수에 글꼴 파일을 지정할 수 있습니다. 색상을 변경하려면 imageColorAllocate () 함수를 사용하고 원하는 색상의 RGB 값을 지정할 수 있습니다. 사용자 정의는 보안관을보다 미학적으로 즐겁게 만들뿐만 아니라 봇에 대해 더 안전하게 만들 수 있습니다. <h3 id="어떻게-내포프-차를보다-안전하게-만들-수-있습니까"> 어떻게 내포프 차를보다 안전하게 만들 수 있습니까? </h3> 보안 문자를보다 안전하게 만드는 방법에는 몇 가지가 있습니다. 한 가지 방법은 상류 및 소문자의 영숫자를 혼합하는 것입니다. 이로 인해 가능한 조합의 수가 증가하여 봇이 추측하기가 더 어려워집니다. 보안 문자의 길이를 늘릴 수도 있습니다. 또 다른 방법은 보안물 이미지에 선이나 도트와 같은 노이즈를 추가하는 것입니다. 이것은 php의 imageline () 및 imageEllipse () 함수를 사용하여 수행 할 수 있습니다. <p> 왜 내 담그차가 나타나지 않습니까? </p> <h3 id="보안치가-나타나지-않으면있을-수-있습니다-몇-가지-이유-한-가지-일반적인-이유는-GD-라이브러리가-PHP-설치에-설치되거나-활성화되지-않았기-때문입니다-function-exists-gd-info-함수를-사용하여이를-확인할-수-있습니다-False를-반환하면-GD가-활성화되지-않습니다-또-다른-이유는-PHP-코드의-오류-일-수-있습니다-실-새-보안-문자를-생성하기-위해-서버에-요청을-보내는-JavaScript-함수를-작성해야합니다-그런-다음-서버는-새로운-Captcha-이미지로-응답-한-다음-전체-페이지-재-장전없이-웹-페이지에서-업데이트됩니다"> 보안치가 나타나지 않으면있을 수 있습니다. 몇 가지 이유. 한 가지 일반적인 이유는 GD 라이브러리가 PHP 설치에 설치되거나 활성화되지 않았기 때문입니다. function_exists ( 'gd_info') 함수를 사용하여이를 확인할 수 있습니다. False를 반환하면 GD가 활성화되지 않습니다. 또 다른 이유는 PHP 코드의 오류 일 수 있습니다. 실 새 보안 문자를 생성하기 위해 서버에 요청을 보내는 JavaScript 함수를 작성해야합니다. 그런 다음 서버는 새로운 Captcha 이미지로 응답 한 다음 전체 페이지 재 장전없이 웹 페이지에서 업데이트됩니다. </h3> GD 라이브러리가없는 Captcha를 사용할 수 있습니까? <p> </p> GD 라이브러리는 일반적으로 사용됩니다. PHP에서 보안관을 만드는 것은 유일한 방법이 아닙니다. Imagemagick과 같은 다른 라이브러리를 사용하거나 텍스트 기반 보안관을 만들 수도 있습니다. 그러나 이러한 방법은 GD 라이브러리와 동일한 수준의 보안 및 사용자 정의를 제공하지 않을 수 있습니다.<add> 연락처 양식에 보안 문자를 추가 할 수 있습니까? <h3 id="연락처-양식에-보안-문자를-추가하려면-양식의-HTML-및-PHP-코드를-수정하는-것이-포함됩니다-HTML에서는-보안-문자에-대한-이미지-태그와-사용자가-CARTCHA를-입력-할-입력-필드를-추가해야합니다-PHP에서-보안-문자를-생성하고-사용자의-입력을-검증해야합니다"> 연락처 양식에 보안 문자를 추가하려면 양식의 HTML 및 PHP 코드를 수정하는 것이 포함됩니다. HTML에서는 보안 문자에 대한 이미지 태그와 사용자가 CARTCHA를 입력 할 입력 필드를 추가해야합니다. PHP에서 보안 문자를 생성하고 사용자의 입력을 검증해야합니다. </h3> 왜 내 담근 검증이 작동하지 않는 이유는 무엇입니까? <p> </p> CAPTCHA 유효성 검사가 작동하지 않으면 마감일이 발생할 수 있습니다. 몇 가지 이유로. 한 가지 일반적인 이유는 세션 변수가 올바르게 설정되거나 검색되지 않기 때문입니다. 출력이 브라우저로 전송되고 세션 변수가 올바르게 사용되기 전에 Session_start ()가 호출되어 있는지 확인하십시오. 또 다른 이유는 사용자의 입력이 보안 문자와 올바르게 비교되지 않기 때문일 수 있습니다. 보안 문자가 상류 및 소문자 문자가 모두 포함 된 경우 사례 감지 비교를 사용해야합니다. <h3 id="시각-장애가있는-사용자가-내포프를-액세스-할-수있게하려면-어떻게-보안-문자에-액세스-할-수있게-만들-수-있습니까"> 시각 장애가있는 사용자가 내포프를 액세스 할 수있게하려면 어떻게 보안 문자에 액세스 할 수있게 만들 수 있습니까? </h3>. 손상된 사용자는 어려울 수 있지만 몇 가지 방법이 있습니다. 한 가지 방법은 오디오 볼프트 옵션을 제공하는 것입니다. 여기에는 크게 큰 소리로 말한 Captcha 캐릭터와 함께 오디오 파일을 생성하는 것이 포함됩니다. 또 다른 방법은 대체 질문 기반 보안관을 사용하는 것인데, 여기서 봇은 봇이 대답하기가 어려울 간단한 질문을받는 것입니다. <p> </p> 봇은 여전히 ​​내 담그차를 우회 할 수 있습니까? <h3> </h3> 봇을 방지하도록 설계된 것은 완벽하지 않습니다. 고급 봇은 OCR (광학 문자 인식)을 사용하여 보안 문자를 읽을 수 있습니다. 그러나, 믹스 캐릭터를 사용하고, 소음을 추가하고, 정기적으로 담그차를 바꾸는 것과 같이 보안관을 더욱 복잡하게 만들면 봇이 우회하기가 더 어려워 질 수 있습니다. <p> </p>는 스팸을 방지하는 유일한 방법입니다. ? <h3> </h3> CAPTCHA는 스팸을 예방하는 일반적인 방법이지만 유일한 방법은 아닙니다. 다른 방법에는 허니 포트 사용이 포함됩니다. 허니 포트는 봇이 채울 수 있지만 인간은하지 않을 것이지만 인간은 양식을 작성하는 데 걸리는 시간과 같은 시간과 같은 사용자의 행동을 확인하고, Akismet과 같은 서비스를 사용하는 것과 같은 사용자의 행동을 확인하는 등 허니 포트 사용 등이 있습니다. 알려진 스팸 데이터베이스를 기반으로 한 스팸</add></custom></questions></p></of>

위 내용은 PHP 및 GD가있는 간단한 보안 문자의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

뜨거운 주제

PHP 변수 범위가 설명되었습니다 PHP 변수 범위가 설명되었습니다 Jul 17, 2025 am 04:16 AM

PHP 변수 범위에 대한 일반적인 문제 및 솔루션에는 다음이 포함됩니다. 1. 기능 내에서 글로벌 변수에 액세스 할 수 없으며 글로벌 키워드 또는 매개 변수를 사용하여 전달해야합니다. 2. 정적 변수는 정적으로 선언되며 한 번만 초기화되며 값은 여러 통화 사이에 유지됩니다. 3. $ _get 및 $ _post와 같은 Hyperglobal 변수는 모든 범위에서 직접 사용할 수 있지만 안전한 필터링에주의를 기울여야합니다. 4. 익명 함수 사용 키워드를 통해 상위 범위 변수를 도입해야하며 외부 변수를 수정할 때는 참조를 전달해야합니다. 이러한 규칙을 마스터하면 오류를 피하고 코드 안정성을 향상시키는 데 도움이 될 수 있습니다.

PHP에서 코드 주석 PHP에서 코드 주석 Jul 18, 2025 am 04:57 AM

PHP 주석 코드에는 세 가지 일반적인 방법이 있습니다. 1. // 또는 #을 사용하여 한 줄의 코드를 차단하며 // 사용하는 것이 좋습니다. 2. 사용 /.../ 여러 줄로 코드 블록을 랩핑하려면 중첩 할 수는 없지만 교차 할 수 있습니다. 3. 복합 기술 사용 / if () {} /와 같은 논리 블록을 제어하거나 편집기 바로 가기 키를 사용한 효율성을 향상시키기 위해서는 기호를 닫는 데주의를 기울이고 사용할 때 중첩을 피해야합니다.

PHP 댓글 작성 팁 PHP 댓글 작성 팁 Jul 18, 2025 am 04:51 AM

PHP 의견을 작성하는 열쇠는 목적과 사양을 명확히하는 것입니다. 의견은 중복성이나 너무 단순성을 피하고 "수행 된 것"보다는 "왜"를 설명해야합니다. 1. 클래스 및 메소드 설명에 DocBlock (/*/)과 같은 통합 형식을 사용하여 가독성 및 도구 호환성을 향상시킵니다. 2. JS 점프가 수동으로 출력 해야하는 이유와 같은 논리의 이유를 강조합니다. 3. 복잡한 코드 전에 개요 설명을 추가하고 프로세스를 단계적으로 설명하고 전체 아이디어를 이해하는 데 도움이됩니다. 4. Todo 및 Fixme를 합리적으로 사용하여 할 일 항목과 문제를 표시하여 후속 추적 및 협업을 용이하게합니다. 주석이 양호하면 통신 비용을 줄이고 코드 유지 보수 효율성을 향상시킬 수 있습니다.

학습 PHP : 초보자 가이드 학습 PHP : 초보자 가이드 Jul 18, 2025 am 04:54 AM

tolearnpheffectical, startBysetTupaloCalserErverEnmentUsingToolslikexamppandacodeeditor -likevscode.1) installxamppforapache, mysql, andphp.2) useacodeeditorforsyntaxsupport.3)) 3) testimplephpfile.next, withpluclucincludechlucincluclucludechluclucled

빠른 PHP 설치 자습서 빠른 PHP 설치 자습서 Jul 18, 2025 am 04:52 AM

toinstallphpquickly, usexampponwindowsorhomebrewonmacos.1. 온수, downloadandinstallxAmpp, selectComponents, startApache 및 placefilesinhtdocs.2

PHP를 사용하여 소셜 공유 기능을 구축하는 방법 PHP 공유 인터페이스 통합 실습 PHP를 사용하여 소셜 공유 기능을 구축하는 방법 PHP 공유 인터페이스 통합 실습 Jul 25, 2025 pm 08:51 PM

PHP에서 소셜 공유 기능을 구축하는 핵심 방법은 각 플랫폼의 요구 사항을 충족하는 공유 링크를 동적으로 생성하는 것입니다. 1. 먼저 현재 페이지 또는 지정된 URL 및 기사 정보를 얻습니다. 2. UrlenCode를 사용하여 매개 변수를 인코딩하십시오. 3. 각 플랫폼의 프로토콜에 따라 스플 라이스 및 공유 링크를 생성합니다. 4. 사용자가 클릭하고 공유 할 수 있도록 프론트 엔드에 링크를 표시합니다. 5. 컨텐츠 표시 공유를 최적화하기 위해 페이지에서 OG 태그를 동적으로 생성합니다. 6. XSS 공격을 방지하기 위해 사용자 입력을 피하십시오. 이 방법에는 복잡한 인증이 필요하지 않으며 유지 보수 비용이 낮으며 대부분의 콘텐츠 공유 요구에 적합합니다.

PHP는 AI 지능형 음성 보조 PHP 음성 상호 작용 시스템 구성을 호출합니다. PHP는 AI 지능형 음성 보조 PHP 음성 상호 작용 시스템 구성을 호출합니다. Jul 25, 2025 pm 08:45 PM

사용자 음성 입력은 프론트 엔드 JavaScript의 MediareCorder API를 통해 PHP 백엔드로 캡처되어 전송됩니다. 2. PHP는 오디오를 임시 파일로 저장하고 STTAPI (예 : Google 또는 Baidu 음성 인식)를 호출하여 텍스트로 변환합니다. 3. PHP는 텍스트를 AI 서비스 (예 : OpenAigpt)로 보냅니다. 4. 그런 다음 PHP는 TTSAPI (예 : Baidu 또는 Google 음성 합성)를 호출하여 응답을 음성 파일로 변환합니다. 5. PHP는 음성 파일을 프론트 엔드로 되돌아 가서 상호 작용을 완료합니다. 전체 프로세스는 PHP에 의해 지배되어 모든 링크 간의 원활한 연결을 보장합니다.

PHP를 사용하여 AI와 결합하여 텍스트 오류 수정 PHP 구문 감지 및 최적화를 달성합니다. PHP를 사용하여 AI와 결합하여 텍스트 오류 수정 PHP 구문 감지 및 최적화를 달성합니다. Jul 25, 2025 pm 08:57 PM

AI를 사용한 텍스트 오류 수정 및 구문 최적화를 실현하려면 다음 단계를 따라야합니다. 1. Baidu, Tencent API 또는 오픈 소스 NLP 라이브러리와 같은 적절한 AI 모델 또는 API를 선택하십시오. 2. PHP의 컬 또는 guzzle을 통해 API를 호출하고 반환 결과를 처리하십시오. 3. 응용 프로그램에 오류 수정 정보를 표시하고 사용자가 채택할지 여부를 선택할 수 있습니다. 4. 구문 감지 및 코드 최적화를 위해 PHP-L 및 PHP_CODESNIFFER를 사용하십시오. 5. 피드백을 지속적으로 수집하고 모델 또는 규칙을 업데이트하여 효과를 향상시킵니다. AIAPI를 선택할 때 정확도, 응답 속도, 가격 및 PHP 지원 평가에 중점을 둡니다. 코드 최적화는 PSR 사양을 따르고, 캐시를 합리적으로 사용하고, 원형 쿼리를 피하고, 정기적으로 코드를 검토하고, X를 사용해야합니다.

See all articles