为了账号安全,请及时绑定邮箱和手机立即绑定

PHP实现验证码制作

难度初级
时长 1小时20分
学习人数
综合评分9.80
173人评价 查看评价
10.0 内容实用
9.8 简洁易懂
9.6 逻辑清晰

已采纳回答 / fangshuiyu
因为读操作不会对数据产生影响,可以同时多个线程进行互不干扰,但是写数据的话就得进行加锁,也就是一个线程在操作时候,要保证其他线程不能同时对资源进行操作,不然最后数据就会发生错误,根据数据库引擎的加锁方式不同,可能有字段加锁,表加锁,开销也会不同,另外当数据量很大时候,根据存储结构不同,可能写入一个数据,会进行很大的数据变动,这时候就会比较消耗资源
$fontcontent = substr($data,rand(0,strlen($data)),1); 这里确实有问题,substr的第二个参数start不能大于所截取字符串的长度.今天敲代码总是会有数据出不来,最后发现是substr返回了false
$captch_code.=$fontcontent;应该改为$captch_code.=$fontcontent."";
声音好听,我听弯了

最新回答 / pardon110
你将画布设置为宽60px,高30px, 其它涉及到宽或高的代码数值作相应的适当变动就可以了。
谢谢老师的分享。
老师的整体思路杠杠的!
for($i=0; $i<200; $i++){
$color = imagecolorallocate( $image, rand(0,255), rand(0,255), rand(0,255));
imagesetpixel($image,rand(0,100),rand(0,30),$color);
}
如果学过GD库实现图片水印,还可以在图片中加入字符水印作为验证码,原理是一样的。

最赞回答 / AzureRay
 // count()后面要减去1,因为数组下标是从0开始。否则有的验证码图片不会正常显示      $index = rand(0,count($strdb)-1);
课程须知
本课程适合PHP初学者或者自学的童鞋们。
老师告诉你能学到什么?
1、如何拆解验证码项目 2、PHP的绘图扩展GD库的使用 3、如何用GD函数画图与验证码内容 4、如何用PHP做验证码校验,及动态校验 5、怎么实现中文、图片、视频验证码

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消