• PHP gd库 验证码


    需要的简单前台页面

    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    <title>验证码</title>
    </head>
    <script type="text/javascript">
        function yanz()
        {
            document.getElementById('code').src='auth.php?tm='+Math.random();
        }
    </script>
    <body>
    <h1>请输入验证码</h1>
    <form action="check_auth.php" method="post">
       <input name="auth" type="text">
       <a href="#" onclick="yanz()"><b style="color: #FF0000">看不清,换一张</b></a>
       <img src="auth.php" border="0" id="code" /><br/><br/>
       <input type="submit" value="提交">
    </form>
    </body>
    </html>

    通过前台的传输数据判断是否输入正确

    <?php
       session_start();
       $auth=$_POST['auth'];

       if(empty($auth))
       {
           echo '错误:验证码不能为空';
           die;
       }

       if($auth==$_SESSION['check_auth'])
       {
           echo '正确';
       }
       else
       {
           echo '错误:验证码输入错误';
       }
    ?>

    这是一个封装好的一个验证类,也可以自己修改,可以百度PHP画布,原理就是PHP画图组成的

    <?php
    error_reporting(0);
       session_start();
       header("Content-type:image/png");

       $img_width=100;
       $img_height=20;

       srand(microtime()*100000);
       for($i=0;$i<4;$i++)
       {
            $new_number.=dechex(rand(0,15));
       }

       $_SESSION[check_auth]=$new_number;
       $new_number=imageCreate($img_width,$img_height);//创建图象
       ImageColorAllocate($new_number,255,255,255);  //设置背景色为白色

       for($i=0;$i<strlen($_SESSION[check_auth]);$i++)
       {
           $font=mt_rand(3,5);
           $x=mt_rand(1,8) + $img_width*$i/4;
           $y=mt_rand(1,$img_height/4);
           $color=imageColorAllocate($new_number,mt_rand(0,100),mt_rand(0,150),mt_rand(0,200));//设置字符颜色
           imageString($new_number,$font,$x,$y,$_SESSION[check_auth][$i],$color);//输出字符
       }

       ImagePng($new_number);
       ImageDestroy($new_number);
    ?>

  • 相关阅读:
    消息中间件与kafka(二)
    维度建模基本概念(二)
    阿里开源canal
    ETL-kettle报错--org.gjt.mm.mysql.Driver
    消息中间件与rabbitmq(一)
    python装饰器--这个很pythonic
    Swift开发小技巧--识别选中照片中的二维码
    Swift开发小技巧--扫描二维码,二维码的描边与锁定,设置扫描范围,二维码的生成(高清,无码,你懂得!)
    Swift开发小技巧--自定义转场动画
    Swift基础--通知,代理和block的使用抉择以及Swift中的代理
  • 原文地址:https://www.cnblogs.com/yinyusoso/p/8350114.html
Copyright © 2020-2023  润新知