千家信息网

PHP怎么生成图片验证码

发表于:2025-02-07 作者:千家信息网编辑
千家信息网最后更新 2025年02月07日,本篇内容介绍了"PHP怎么生成图片验证码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!5种PHP生成
千家信息网最后更新 2025年02月07日PHP怎么生成图片验证码

本篇内容介绍了"PHP怎么生成图片验证码"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

5种PHP生成图片验证码实例,包括数字验证码、数字+字母验证码、中文验证码、仿google验证码和算术验证码,PHP生成验证码的原理:通过GD库,生成一张带验证码的图片,并将验证码保存在Session中。

js验证

$(function() {    $("#getcode_num").click(function() {  //数字验证         $(this).attr("src", 'code_num.php?' + Math.random());     });     $("#chk_num").click(function() {         var code_num = $("#code_num").val();         $.post("chk_code.php?act=num", {             code: code_num         },         function(msg) {             if (msg == 1) {                 alert("验证码正确!");             } else {                 alert("验证码错误!");             }         });     });     //数字+字母验证     $("#getcode_char").click(function() {         $(this).attr("src", 'code_char.php?' + Math.random());     });     $("#chk_char").click(function() {         var code_char = $("#code_char").val();         $.post("chk_code.php?act=char", {             code: code_char         },         function(msg) {             if (msg == 1) {                 alert("验证码正确!");             } else {                 alert("验证码错误!");             }         });     });     //中文验证码     $("#getcode_zh").click(function() {         $(this).attr("src", 'code_zh.php?' + Math.random());     });     $("#chk_zh").click(function() {         var code_zh = escape($("#code_zh").val());         $.post("chk_code.php?act=zh", {             code: code_zh         },         function(msg) {             if (msg == 1) {                 alert("验证码正确!");             } else {                 alert("验证码错误!");             }         });     });     //google验证     $("#getcode_gg").click(function() {         $(this).attr("src", 'code_gg.php?' + Math.random());     });     $("#chk_gg").click(function() {         var code_gg = $("#code_gg").val();         $.post("chk_code.php?act=gg", {             code: code_gg         },         function(msg) {             if (msg == 1) {                 alert("验证码正确!");             } else {                 alert("验证码错误!");             }         });     });     //算术验证     $("#getcode_math").click(function() {         $(this).attr("src", 'code_math.php?' + Math.random());     });     $("#chk_math").click(function() {         var code_math = $("#code_math").val();         $.post("chk_code.php?act=math", {             code: code_math         },         function(msg) {             if (msg == 1) {                 alert("验证码正确!");             } else {                 alert("验证码错误!");             }         });     }); });


生成验证码

session_start();  getCode(4,60,20);    function getCode($num,$w,$h) {      $code = "";      for ($i = 0; $i < $num; $i++) {          $code .= rand(0, 9);      }      //4位验证码也可以用rand(1000,9999)直接生成      //将生成的验证码写入session,备验证时用      $_SESSION["helloweba_num"] = $code;      //创建图片,定义颜色值      header("Content-type: image/PNG");      $im = imagecreate($w, $h);      $black = imagecolorallocate($im, 0, 0, 0);      $gray = imagecolorallocate($im, 200, 200, 200);      $bgcolor = imagecolorallocate($im, 255, 255, 255);      //填充背景      imagefill($im, 0, 0, $gray);        //画边框      imagerectangle($im, 0, 0, $w-1, $h-1, $black);        //随机绘制两条虚线,起干扰作用      $style = array ($black,$black,$black,$black,$black,          $gray,$gray,$gray,$gray,$gray      );      imagesetstyle($im, $style);      $y1 = rand(0, $h);      $y2 = rand(0, $h);      $y3 = rand(0, $h);      $y4 = rand(0, $h);      imageline($im, 0, $y1, $w, $y3, IMG_COLOR_STYLED);      imageline($im, 0, $y2, $w, $y4, IMG_COLOR_STYLED);        //在画布上随机生成大量黑点,起干扰作用;      for ($i = 0; $i < 80; $i++) {          imagesetpixel($im, rand(0, $w), rand(0, $h), $black);      }      //将数字随机显示在画布上,字符的水平间距和位置都按一定波动范围随机生成      $strx = rand(3, 8);      for ($i = 0; $i < $num; $i++) {          $strpos = rand(1, 6);          imagestring($im, 5, $strx, $strpos, substr($code, $i, 1), $black);          $strx += rand(8, 12);      }      imagepng($im);//输出图片      imagedestroy($im);//释放图片所占内存  }

"PHP怎么生成图片验证码"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0