怎么解决php验证码不变的问题
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"怎么解决php验证码不变的问题",在日常操作中,相信很多人在怎么解决php验证码不变的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么解决php
千家信息网最后更新 2025年01月31日怎么解决php验证码不变的问题
这篇文章主要介绍"怎么解决php验证码不变的问题",在日常操作中,相信很多人在怎么解决php验证码不变的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"怎么解决php验证码不变的问题"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
php验证码不变的解决办法:1、使用"_javascript:ckimg();"方法实现更换一张验证码;2、通过"οnclick="this.src='..."方法实现点击换图片即可。
本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑
php 验证码不变怎么办?
php验证码无刷新改变(更换)
test.php
看不清,请换一张
生产验证码的类,包含了一些验证码生成的参数,如:大小,颜色,显示验证码的符号类型
validateCode2.php
len = $len; $im_width = $len * 15;$this->im_width = $im_width;$this->im_height= $im_height;$this->im = imagecreate($im_width,$im_height);}// 设置图片背景颜色,默认是浅灰色背景function set_bgcolor () {imagecolorallocate($this->im,$this->red,$this->green,$this->blue);}// 获得任意位数的随机码function get_randnum () {$an1 = 'abcdefghijklmnopqrstuvwxyz';$an2 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';$an3 = '0123456789';if ($this->ext_num_type == '') $str = $an1.$an2.$an3;if ($this->ext_num_type == 1) $str = $an1;if ($this->ext_num_type == 2) $str = $an2;if ($this->ext_num_type == 3) $str = $an3;for ($i = 0; $i < $this->len; $i++) { $start = rand(1,strlen($str) - 1); $randnum .= substr($str,$start,1);}$this->randnum = $randnum;$_SESSION[an] = $this->randnum;}// 获得验证码图片Y轴function get_y () {if ($this->ext_rand_y) $this->y = rand(5, $this->im_height/5);else $this->y = $this->im_height / 4 ;}// 获得随机色function get_randcolor () {$this->randcolor = imagecolorallocate($this->im,rand(0,100),rand(0,150),rand(0,200));}// 添加干扰点function set_ext_pixel () {if ($this->ext_pixel) {for($i = 0; $i < 100; $i++){$this->get_randcolor();imagesetpixel($this->im, rand()0, rand()0, $this->randcolor);}}}// 添加干扰线function set_ext_line () {if ($this->ext_line) {for($j = 0; $j < 2; $j++){$rand_x = rand(2, $this->im_width);$rand_y = rand(2, $this->im_height);$rand_x2 = rand(2, $this->im_width);$rand_y2 = rand(2, $this->im_height);$this->get_randcolor();imageline($this->im, $rand_x, $rand_y, $rand_x2, $rand_y2, $this->randcolor);}}}/**创建验证码图像:* 建立画布(__construct函数)* 设置画布背景($this->set_bgcolor();)* 获取随机字符串($this->get_randnum ();)* 文字写到图片上(imagestring函数)* 添加干扰点/线($this->set_ext_line(); $this->set_ext_pixel();)* 输出图片**/function create () {$this->set_bgcolor();$this->get_randnum ();for($i = 0; $i < $this->len; $i++){$font = rand(4,6);$x = $i/$this->len * $this->im_width + rand(1, $this->len);$this->get_y();$this->get_randcolor();imagestring($this->im, $font, $x, $this->y, substr($this->randnum, $i ,1), $this->randcolor);}$this->set_ext_line();$this->set_ext_pixel();header("content-type:image/png");imagepng($this->im);imagedestroy($this->im); //释放图像资源}}//end class/**使用验证码类的方法:* $an = new Authnum(验证码长度,图片宽度,图片高度);* 实例化时不带参数则默认是四位的60*25尺寸的常规验证码图片* 表单页面检测验证码的方法,对比 $_SESSION[an] 是否等于 $_POST[验证码文本框ID]* 可选配置:* 1.验证码类型:$an->ext_num_type=1; 值为1是小写类型,2是大写类型,3是数字类型* 2.干扰点:$an->ext_pixel = false; 值为false表示不添加干扰点* 3.干扰线:$an->ext_line = false; 值为false表示不添加干扰线* 4.Y轴随机:$an->ext_rand_y = false; 值为false表示不支持图片Y轴随机* 5.图片背景:改变 $red $green $blue 三个成员变量的值即可**/$an = new Authnum();$an->ext_num_type='';$an->ext_pixel = true; //干扰点$an->ext_line = false; //干扰线$an->ext_rand_y= true; //Y轴随机$an->green = 238;$an->create();?>
到此,关于"怎么解决php验证码不变的问题"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
验证
图片
干扰
问题
方法
类型
背景
学习
函数
参数
图像
更多
画布
颜色
帮助
接下来
三个
位数
办法
变量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
敏捷软件开发流程
用自己电脑当服务器
北邮的网络安全考研
百万至尊网络安全吗
电脑的无线网络dns服务器
国际服出现服务器未连接怎么办
linux服务器工具
网络安全不烦恼
计算机网络技术都学哪些
软件开发师要考什么大学
大数据开发软件开发网
银河 服务器
网络安全检查标题
连接数据库的sql语句
服务器ddos防护价格
谨记网络安全共创网络文明ppt
米泉新华互联网科技怎么样
数据库中什么是概念模型
软件开发定制宜昌
金属服务器怎么开发
软件开发就业难不难
互联网科技vr
通州区卫星软件开发要求
leancloud数据库使用
lpv6服务器地址是什么
北京市朝阳区网络安全大队
如何修改数据库文件组大小
电脑无线网dns服务器不可用
上善若水软件开发
微信的缓存怎么恢复数据库