PHP에서 인증 코드를 수행하는 방법

(*-*)浩
풀어 주다: 2023-02-25 08:48:01
원래의
3224명이 탐색했습니다.

PHP 인증코드 제작은 PHP의 기본 능력에 대한 평가입니다. PHP 인증코드 제작은 gd 라이브러리의 많은 기능이 사용되기 때문에 gd 라이브러리를 열어야 합니다.

PHP에서 인증 코드를 수행하는 방법

이미지는 GD에 따라 처리됩니다. PHP 라이브러리, 확인 코드 그림 그리기, code.php의

form 인터페이스, 간단한 세션 저장 및 사용자 입력과의 비교를 통해 확인이 올바른지 확인하는 form.php(권장 학습: PHP 프로그래밍 입문부터) 숙련도)

<?php
    session_start();//必须位于脚本的最顶端
   $image=imagecreatetruecolor(100, 30);//imagecreatetruecolor函数建一个真彩色图像
   //生成彩色像素    
   $bgcolor=imagecolorallocate($image, 255, 255, 255);//白色背景     imagecolorallocate函数为一幅图像分配颜色
   $textcolor=imagecolorallocate($image,0,0,255);//蓝色文本
   //填充函数,xy确定坐标,color颜色执行区域填充颜色
   imagefill($image, 0, 0, $bgcolor);
   $captch_code="";//初始空值

   //该循环,循环取数
   for($i=0;$i<4;$i++){
     $fontsize=6;
     $x=($i*25)+rand(5,10);
     $y=rand(5,10);//位置随机
    //  $fontcontent=$i>2?chr(rand(97,122)):chr(rand(65,90));//是小写,否则是大写
    $data=&#39;abcdefghijkmnpqrstuvwxyz3456789&#39;;
    $fontcontent=substr($data,rand(0,strlen($data)-1),1);//strlen仅仅是一个计数器的工作  含数字和字母的验证码
                                                           //可以理解为数组长度0到30

 $fontcolor=imagecolorallocate($image,rand(0,100),rand(0,100),rand(0,100));//随机的rgb()值可以自己定

    imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor); //水平地画一行字符串
    $captch_code.=$fontcontent;
}
    $_SESSION[&#39;authcode&#39;]=$captch_code;//将变量保存再session的authcode变量中

    
    //该循环,循环画背景干扰的点
    for($m=0;$m<=600;$m++){

     $x2=rand(1,99);
     $y2=rand(1,99);
     $pointcolor=imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));
    imagesetpixel($image,$x2,$y2,$pointcolor);// 水平地画一串像素点
    }

    //该循环,循环画干扰直线
   for ($i=0;$i<=10;$i++){
       $x1=rand(0,99);
       $y1=rand(0,99);
       $x2=rand(0,99);
       $y2=rand(0,99);
       $linecolor=imagecolorallocate($image,rand(0,255),rand(0,255),rand(0,255));
       imageline($image,$x1,$y1,$x2,$y2,$linecolor);//画一条线段
   
   }
   header(&#39;content-type:image/png&#39;);
   imagepng($image);
   //销毁
   imagedestroy($image);
?>
로그인 후 복사

코드:

<?php
// session 存值并匹配用户输入值
    if (isset($_REQUEST[&#39;authcode&#39;])) {
        session_start();
        if (strtolower($_REQUEST[&#39;authcode&#39;])==$_SESSION[&#39;authcode&#39;]) {//strtolower转化为小写的函数
            echo"输入正确!";
            # code...
        }
        else{
            echo"输入错误!";
        }
        exit();
    }
?>
<!DOCTYPE html>
<html>
<head>
<!-- 简单的表单提交代码 -->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>简单验证码的实现</title>
</head>
<body>
    <form method="post" action="./form.php">
    <p>验证码图片:<img src="code.php" onClick="this.src=&#39;code.php?nocache=&#39;+Math.random()" style="cursor:hand" alt="点击换一张"/>点击图片可更换验证码</p>
    <p>请输入图片中的内容:<input type="text" name="authcode" value=""/></p>
    <p><input type="submit" width="20px" height=19px value="提交"></input></p>
    </form>
    
</body>
</html>
로그인 후 복사

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿