• PHP


    一,主页 index.php  

    <!DOCTYPE html>
    <html lang="en">
    <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>Document</title>
    </head>
    <body>
    <script type="text/javascript">
    function refresh() {
    document.getElementById("codeP").src = "picture.php?tm="+Math.random();
    }
    </script>
    <form action="check.php" method="post">
    <div>
    <img id="codeP" src="picture.php" onclick="refresh()"/>
    <input id="codeT" type="text" name="codeT" />
    </div>
    </form>
    </body>
    </html>
     
    二,生成验证码 picture.php
    <?php

    header("Cache-Control: no-cache, must-revalidate");
    // 声明图像大小
    $img_height=70;
    $img_width=25;
    $authnum='';
    // 验证码内容
    $ychar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z";
    $list=explode(",",$ychar);
    for($i=0;$i<4;$i++){
    $randnum=rand(0,35);
    $authnum.=$list[$randnum];
    }
    // session有效
    session_start();

    // 将每次生成的验证码保存在session中
    $_SESSION["sessionCode"] = $authnum;
    // 生成一个基本大小图像
    $aimg = imagecreate($img_height,$img_width);
    // 图像填充颜色
    imagecolorallocate($aimg, 255,255,255);
    $black = imagecolorallocate($aimg, 0,0,0);
     
    for ($i=1; $i<=100; $i++) { imagestring($aimg,1,mt_rand(1,$img_height),mt_rand(1,$img_width),"@",imagecolorallocate($aimg,mt_rand(200,255),mt_rand(200,255),mt_rand(200,255)));
    }
     
    //为了区别于背景,这里的颜色不超过200,上面的不小于200
    for ($i=0;$i<strlen($authnum);$i++){
    imagestring($aimg, mt_rand(3,5),$i*$img_height/4+mt_rand(2,7),mt_rand(1,$img_width/2-2), $authnum[$i],imagecolorallocate($aimg,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200)));
    }
    imagerectangle($aimg,0,0,$img_height-1,$img_width-1,$black);//画一个矩形
    Header("Content-type: image/PNG");
    ImagePNG($aimg); //生成png格式
    ImageDestroy($aimg);
    ?>
     
    三,接收测试 验证码 check.php
    <!DOCTYPE html>
    <html lang="en">
    <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>Document</title>
    </head>
    <body>
    <?php
    session_start();
    $codeT = $_POST['codeT'];
    $codeP = $_SESSION["sessionCode"];
    echo '输入:'.$codeT.'<br>';
    echo '验证码'.$codeP.'<br>';
    if ($codeT==$codeP) {
    echo '正确<br>';
    } else {
    echo '错误';
    }?>
    </body>
    </html>
  • 相关阅读:
    OpenGL第十节:彩色键控与混合
    OpenGL第九节:操作像素点去更新纹理
    OpenGL第八节:非二次幂的纹理渲染处理
    OpenGL第七节:纹理绘制裁剪图片的指定部分
    OpenGL第六节:加载png图片
    OpenGL第五节:纹理贴图和像素操作
    OpenGL第四节:滚动和矩阵栈
    OpenGL第三节:Viewport视口
    OpenGL第二节:绘制多个颜色四边形
    TextView关键字高亮
  • 原文地址:https://www.cnblogs.com/500m/p/11218658.html
Copyright © 2020-2023  润新知