php 图像因其本身有错无法显示,PHP生成验证码时“图像因其本身有错无法显示”的解决办法...

这篇博客讲述了在使用PHP生成验证码时遇到的‘图像因其本身有错无法显示’的错误,以及如何通过删除空格、调整代码、清理输出缓冲区等方法来解决该问题。博主分享了详细的代码实现,包括生成验证码的函数和验证验证码的session处理,并提供了相关PHP验证码实例的参考链接。
摘要由CSDN通过智能技术生成

PHP生成验证码时“图像因其本身有错无法显示”的解决办法。

今天应用代码进行PHP生成校验码功能的实现,发明firefox一向提示“图像.......因其本身有错无法显示”的题目,作者也提示了说“若是浏览器显示“图像XXX因其本身有错无法显示”,可尽量去掉文中空格”,但把代码中所有空格都去掉了还是不克不及显示查验。

于是深度google,大项目组的解决规划也是将“

确认码生成文件checkNum_session.php

Header(Content-type: image/png);/初始化/

¥border = 1; //是否要边框 1要:0不要

¥how = 4; //验证码位数

¥w = ¥how15; //宽度

¥h = 20; //高度

¥fontsize = 6; //字体大小

¥alpha = abcdefghijkmnopqrstuvwxyz; //验证码内容1:字母

¥number = 023456789; //验证码内容2:数字

¥randcode = ; //验证码字符串初始化

srand((double)microtime()1000000); //初始化随机数种子

¥im = ImageCreate(¥w, ¥h); //创建验证/绘制根蒂根基框架/

¥bgcolor = ImageColorAllocate(¥im, 255, 255, 255); //设置靠山色彩

ImageFill(¥im, 0, 0, ¥bgcolor); //填充靠山色

if(¥border)

{¥black = ImageColorAllocate(¥im, 0, 0, 0); //设置边框色彩

ImageRectangle(¥im, 0, 0, ¥w-1, ¥h-1, ¥black);//绘制边框

}/逐位产生随机字符/

for(¥i=0; ¥i

{¥alpha_or_number = mt_rand(0, 1); //字母还是数字

¥str = ¥alpha_or_number ? ¥alpha : ¥number;¥which = mt_rand(0, strlen(¥str)-1); //取哪个字符

¥code = substr(¥str, ¥which, 1); //取字符

¥j = !¥i ? 4 : ¥j+15; //绘字符地位

¥color3 = ImageColorAllocate(¥im, mt_rand(0,100), mt_rand(0,100), mt_rand(0,100)); //字符随即色彩

ImageChar(¥im, ¥fontsize, ¥j, 3, ¥code, ¥color3); //绘字符

¥randcode .= ¥code; //逐位参加验证码字符串

}//把验证码字符串写入session

session_start();¥_SESSION[authnum_session] = ¥randcode;/添加干扰/

for(¥i=0; ¥i<1; ¥i++)//绘靠山干扰线

{¥color1 = ImageColorAllocate(¥im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰线色彩

ImageArc(¥im, mt_rand(-5,¥w), mt_rand(-5,¥h), mt_rand(20,300), mt_rand(20,200), 55, 44, ¥color1); //干扰线

}for(¥i=0; ¥i

{¥color2 = ImageColorAllocate(¥im, mt_rand(0,255), mt_rand(0,255), mt_rand(0,255)); //干扰点色彩

ImageSetPixel(¥im, mt_rand(0,¥w), mt_rand(0,¥h), ¥color2); //干扰点

}//关键代码,防止呈现图像因其本身有错无法显示的题目

ob_clean();/画图停止/Imagegif(¥im);

ImageDestroy(¥im);/画图停止/

有关php验证码的内容,大师还可以参考如下的文章:php验证码 三个实例分享

php自定义大小验证码

php生成扭曲及扭转的验证码

php验证码(GD库生成验证码)的例子

php验证码的例子

php 雪花靠山 验证码

接下来看,确认码调用文件sessionValidate.php

//error_reporting(2047);

session_destroy();//将session去掉,以每次都能取新的session值;

//用seesion 结果不错,也很便利

?>

session 验证实例验证码: checkNum_session.php

echo 上一个session:.¥_SESSION[authnum_session].
;¥validate=;if(isset(¥_POST[validate])){¥validate=¥_POST[validate];echo 您刚才输入的是:.¥_POST[validate].
状况:;if(¥validate!=¥_SESSION[authnum_session]){//断定session值与用户输入的验证码是否一致;

echo 输入有误;

}else{echo 经由过程验证;

}

}///打印全部session;

PrintArr(¥_SESSION);

function PrintArr(¥aArray){

echo

;

print_r(¥aArray);

echo

;

}/

?>彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值