php编程每天必学之验证码

5年以前  |  阅读数:388 次  |  编程语言:PHP 

本文为大家分享了php图片验证码的实现代码,分享给大家供大家参考,具体内容如下

1.验证码图片生成
captcha.php


    //1.生成100*30大小的图片,默认为黑色
    $image = imagecreatetruecolor(100,30);
    //创建白色底图
    $bgcolor = imagecolorallocate($image,255,255,255);
    //用白色填充黑色
    imagefill ($image,0,0,$bgcolor);

    //2.随机显示数字或字母
    $captch_code = "";
    for($i=0;$i<4;$i++){
     $fontsize=6;
     $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
     $data = "abcdefghijkmnpqrstuvwxy3456789";
     $fontcontent =substr($data,rand(0,strlen($data)),1);
     $captch_code .=$fontcontent;
     $x = ($i*100/4)+rand(5,10);
     $y = rand(5,10);

     imagestring($image, $fontsize, $x, $y, $fontcontent,$fontcolor);
    }
    $_SESSION["authcode"] = $captch_code;

    //3.增加干扰
    //干扰点
    for($i=0;$i<100;$i++){
     $pointcolor=imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
     imagesetpixel($image,rand(1,99),rand(1,29),$pointcolor);
    }

    //干扰线
    for($i=0;$i<2;$i++){
     $linecolor=imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
     imageline($image,rand(1,99),rand(1,29),rand(1,99),rand(1,29),$linecolor);
    }


    header("content-type:image/png");
    imagepng($image);

2.页面实现验证码功能
form.php


    <?php
    if(isset($_POST["authcode"])){
     session_start();
     if(strtolower($_POST["authcode"])==$_SESSION["authcode"]){
      echo "OK";
     }else{
      echo "NO";
     }
    }

    ?>


    <!doctype html>
    <html lang="en">
    <head>
     <meta charset="UTF-8">
     <title>Document</title>
    </head>
    <body>
    <form action="form.php" method="post">
     <p>验证码图片: <img id="img" border="1" src="captcha.php?r=<?php echo rand()?>" alt="">
     <a href="javascript:void(0)" onclick="document.getElementById('img').src='captcha.php?r'+Math.random() ">换一个</a>
     </p>
     <p><input type="text" name="authcode"></p>
     <p><input type="submit" value="提交"></p>

    </form>
    </body>
    </html>

以上就是本文的全部内容,帮助大家轻松实现php图片验证码。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例