>  기사  >  백엔드 개발  >  PHP에서 이미지 인증 코드를 설정하는 방법

PHP에서 이미지 인증 코드를 설정하는 방법

藏色散人
藏色散人원래의
2021-02-25 10:11:433321검색

PHP에서 이미지 확인 코드를 설정하는 방법: 먼저 임의의 문자열을 생성하고 세션을 사용하여 저장한 다음 간단한 이미지를 만들고 배경색, 텍스트 색상을 설정하고 간섭선과 인터페론을 추가한 다음 그림을 채웁니다. 임의의 문자열을 사용하여 최종적으로 출력 버퍼를 지운 다음 확인 코드 그림을 생성합니다.

PHP에서 이미지 인증 코드를 설정하는 방법

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP는 이미지 확인 코드를 생성합니다(간단)

   PHP 초보자, 웹 로그인 인터페이스 작성, 추가 사용자 이름과 비밀번호가 있으면 인증코드가 있으면 더 멋있을 것 같아서 참고서의 간략한 소개를 바탕으로 간단한 이미지 인증코드를 생성하기 위해 image.php를 작성했는데 꽤 감동받아 공유하고 싶습니다. .

1. 이미지 확인 코드 생성 단계:

(1) 임의의 문자열을 생성하고(6자리만 필요하다고 가정) 확인을 위해 세션을 사용하여 저장합니다.

<? = ($i=;$i<;$i++= rand(,= $] = $str;

(2) 간단한 그림(80X20)을 만들고 설정합니다. 배경색, 텍스트 색상, 간섭선 및 인터페론 추가

    $img_handle = Imagecreate(80, 20);  //图片大小80X20
    $back_color = ImageColorAllocate($img_handle, 255, 255, 255); //背景颜色(白色)
    $txt_color = ImageColorAllocate($img_handle, 0,0, 0);  //文本颜色(黑色)    
    //加入干扰线
    for($i=0;$i<3;$i++)
    {
        $line = ImageColorAllocate($img_handle,rand(0,255),rand(0,255),rand(0,255));
        Imageline($img_handle, rand(0,15), rand(0,15), rand(100,150),rand(10,50), $line);
    }    //加入干扰象素
    for($i=0;$i<200;$i++) 
    {
        $randcolor = ImageColorallocate($img_handle,rand(0,255),rand(0,255),rand(0,255));
        Imagesetpixel($img_handle, rand()%100 , rand()%50 , $randcolor);
    }

  (3) 그림 배경색을 채운 다음 생성된 임의 문자열로 그림을 채웁니다.

    Imagefill($img_handle, 0, 0, $back_color);             //填充图片背景色
    ImageString($img_handle, 28, 10, 0, $str, $txt_color);//水平填充一行字符串

(4) 출력 버퍼를 지우고 다시 생성합니다. 인증코드 이미지가 생성되어 이미지가 표시됩니다.

    ob_clean();   // ob_clean()清空输出缓存区    
    header("Content-type: image/png"); //生成验证码图片    
    Imagepng($img_handle);//显示图片?>

  2. 이미지 인증코드 참고 [추천 학습: "PHP Video Tutorial"]

  양식에 인증코드 이미지를 추가하고, src="image.php"를 사용하여 인증코드 이미지를 생성합니다. 위의 단계에서 PHP는 효과를 높이기 위해 js에 인증 코드 새로 고침 기능을 추가했습니다. 이를 참조할 수 있습니다.

<form id="form1" name="form1" method="post" action="post.php">
    <input type="text" name="code" />
    <img  src="image.php" id = "refresh" title="刷新验证码" align="absmiddle" onclick="document.getElementById(&#39;refresh&#39;).src=&#39;image.php&#39; ">
    <font color="#ffffff">点击图片刷新</font>
    <input type="submit" value="登录"/>
</form>

  3. 인증코드 확인

  post.php 1단계에서 저장한 세션을 이용하여 사용자가 입력한 인증코드와 일치시켜줍니다.

<?php
    session_start();    if($_POST[&#39;code&#39;] == $_SESSION[&#39;img_number&#39;]){
        echo "验证码正确";
    }else{
        echo "验证码错误";
    }?>

4. 효과 표시:

생성된 인증 코드 이미지:

로그인 상자의 효과:

4. 남은 문제에 대한 논의

(1) 인증 코드 이미지를 생성하고 이전에 표시하는 이유, 이유 출력 버퍼를 지우려면 ob_clean()을 사용하시겠습니까? ?

저는 PHP에 익숙하지 않기 때문에 다음을 참고하세요: http://www.php.net/manual/zh/function.ob-clean.php

(2) 크기를 설정할 수 있는 방법이 있나요? 이미지에 채워진 글꼴은 무엇입니까? ?

  ImageString 함수는 내장 글꼴을 사용하며 imagettftext() 함수로만 대체될 수 있습니다. 다음을 참고하세요: http://us3.php.net/manual/zh/function.imagettftext.php

 토론 환영합니다, 가볍게 뿌려주세요~

위 내용은 PHP에서 이미지 인증 코드를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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