博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP验证码程序:session生成图片
阅读量:4028 次
发布时间:2019-05-24

本文共 973 字,大约阅读时间需要 3 分钟。

正 文:

    昨天捣鼓了一下PHP验证码并生成图片程序,采用了session识别,稍微改进了一下目前网络上流传的PHP验证码,加入杂点,数字颜色随机显示,控制4位数字显示;话不多说了,程序如下,分享出来。

    效果图如下:

    新建yz.php验证码生成文件:

    注意:以下代码需要打开php的GD库,修改php.in文件的配置,把已经注释掉的行之前的分号取消即可:extension=php_gd2.dll。

session_start();

//生成验证码图片
Header("Content-type: image/PNG"); //表示下面要生成的是图片
$im = imagecreate(44,18);
$back = ImageColorAllocate($im, 245,245,245);
imagefill($im,0,0,$back); //背景

srand((double)microtime()*1000000);

//生成4位数字
for($i=0;$i<4;$i++){
$font = ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(1,9);
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}

for($i=0;$i<100;$i++) //加入干扰象素

$randcolor = ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
ImagePNG($im);
ImageDestroy($im);

$_SESSION['VCODE'] = $vcodes;

?>

    到具体调用的地方,用这样的形式:就可以了;验证的时候验证 session:$_SESSION['VCODE']的值就可以了。还可以对以上代码稍微改进,改成两个数字相加求和的形式,效果可以参见《》。

作者:

来源:
版权所有。转载时必须以链接形式注明作者和及本声明。

你可能感兴趣的文章
Maven项目版本继承 – 我必须指定父版本?
查看>>
Maven跳过单元测试的两种方式
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>
利用清华镜像站解决pip超时问题
查看>>
[leetcode BY python]1两数之和
查看>>
微信小程序开发全线记录
查看>>
Centos import torchvision 出现 No module named ‘_lzma‘
查看>>
网页设计里的浮动 属性
查看>>
Maximum Subsequence Sum
查看>>
PTA:一元多项式的加乘运算
查看>>
CCF 分蛋糕
查看>>
解决python2.7中UnicodeEncodeError
查看>>
小谈python 输出
查看>>
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
查看>>
python:如何将excel文件转化成CSV格式
查看>>
Django 的Error: [Errno 10013]错误
查看>>
机器学习实战之决策树(一)
查看>>
[LeetCode By Python] 2 Add Two Number
查看>>
python 中的 if __name__=='__main__' 作用
查看>>
机器学习实战之决策树二
查看>>