zoukankan      html  css  js  c++  java
  • php 使用GD库生成验证码

    GD库是PHP进行图象操作一个很强大的库。

    先在php.ini里增加一行引用:extension=php_gd2.dll

    重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。

    表单auth.html

    <html>
    <head>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    <title>验证码</title>
    </head>
    <body>
    <h1>请输入验证码</h1>
    <form action="check_auth.php" method="post">
       
    <input name="auth" type="text">
       
    <img src="auth.php" border="0" />
       
    <input type="submit" value="提交">
    </form>
    </body>
    </html>

    生成验证码 auth.php

    <?php
       
    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);
    ?>

    提交页面 check_auth.php

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

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

       
    if($auth==$_SESSION['check_auth'])
       {
           
    echo '正确';
       }
       
    else
       {
           
    echo '错误:验证码输入错误';
       }
    ?>
  • 相关阅读:
    三年Android开发经验,挥泪整理字节跳动、微软中国凉经,你不看看吗?
    App怎么做才能永不崩溃
    做了八年的Android开发,谁不是一边崩溃,一边默默坚守!
    阿里员工年年绩效A,晒出收入后感叹:996虽然痛苦,发钱时候真香
    2021阅读书单
    不动产测绘概念
    Elasticsearch 集成
    Elasticsearch 环境
    Elasticsearch 优化
    Elasticsearch入门
  • 原文地址:https://www.cnblogs.com/tianxin2001x/p/1595265.html
Copyright © 2011-2022 走看看