• PHP生成图形验证码


    PHP生成图形验证码

    效果:随机生成6位验证码,100个干扰的黑点,一条干扰线

    代码:image.php(生成验证码)和check.php(验证验证码是否输入正确)

    效果图详见代码下面的截图

    image.php

    1. <?php
    2. session_start(); //启动session
    3. header('Content-type: image/gif'); //输出头信息
    4. $image_w=100; //验证码图形的宽
    5. $image_h=25; //验证码图形的高
    6. $number=range(0,9); //定义一个成员为数字的数组
    7. $character=range("Z","A"); //定义一个成员为大写字母的数组
    8. $result=array_merge($number,$character); //合并两个数组
    9. $string=""; //初始化
    10. $len=count($result); //新数组的长
    11. for($i=0;$i<6;$i++)
    12. {
    13. $new_number[$i]=$result[rand(0,$len-1)]; //在$result数组中随机取出6个字符
    14. $string=$string.$new_number[$i]; //生成验证码字符串
    15. }
    16. $_SESSION['string']=$string; //使用$_SESSION变量传值
    17. $check_image=imagecreatetruecolor($image_w,$image_h); //创建图片对象
    18. $white=imagecolorallocate($check_image, 255, 255, 255);
    19. $black=imagecolorallocate($check_image, 0, 0, 0);
    20. imagefill($check_image,0,0,$white);//设置背景颜色为白色
    21. $line_color=imagecolorallocate($check_image, 255, 0, 0);//设直线的颜色
    22. imageline($check_image, 0, 10, 100,20, $line_color);//画线
    23. for($i=0;$i<100;$i++) //加入100个干扰的黑点
    24. {
    25. imagesetpixel($check_image, rand(0,$image_w), rand(0,$image_h),$black);
    26. }
    27. for($i=0;$i<count($new_number);$i++) //在背景图片中循环输出4位验证码
    28. {
    29. $x=mt_rand(1,7)+$image_w*$i/6; //设定字符所在位置X坐标
    30. $y=mt_rand(1,$image_h/6); //设定字符所在位置Y坐标
    31. //随机设定字符颜色
    32. $color=imagecolorallocate($check_image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200));
    33. //输入字符到图片中
    34. imagestring($check_image,5,$x,$y,$new_number[$i],$color);
    35. }
    36. imagepng($check_image);
    37. imagedestroy($check_image);
    38. ?>

     check.php

    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4. <title>留言页面</title>
    5. </head>
    6. <body>
    7. <form method="post" action="">
    8. 验证码:<input type="text" size="10" name="check">
    9. <img src="image.php">
    10. <input type="submit" name="ok" value="提交">
    11. </form>
    12. </body>
    13. </html>
    14. <?php
    15. session_start(); //启动session
    16. if(isset($_POST['ok']))
    17. {
    18. $checkstr=$_SESSION['string']; //使用$_SESSION变量获取image.php页面上的验证码
    19. $str=$_POST['check']; //用户输入的字符串
    20. if(strcasecmp($str,$checkstr)==0) //不区分大小写进行比较
    21. echo "";
    22. else
    23. echo "";
    24. }
    25. ?>

    效果图

    生成验证码

    正确输入验证码之后

    错误输入验证码

  • 相关阅读:
    Sora----打破虚实之间的最后一根枷锁----这扇门的背后是人类文明的晟阳还是最后的余晖
    模型推理详细步骤以及如何排查模型和参数字典对不上的问题:Missing key(s) in state_dict: xxxx
    Python 编码规范 (Google)
    2023最新软件测试面试题大全(包含答案)
    GAN-Tutorial procedural record
    Java-基于SSM+JSP的二手手机回收管理系统
    OpenMLDB + Jupyter Notebook:快速搭建机器学习应用
    Redis查询,设置超时时间
    Aqara秋季品鉴会众新品亮相 空间智能全面进化
    Hifiasm-meta | 你没看错!基于宏基因组的完成图!!
  • 原文地址:https://blog.csdn.net/weixin_41957626/article/details/127903813