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