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

$fontcontent=substr($data,rand(0,strlen($data)),1);是不是应该改为$fontcontent=substr($data,rand(0,strlen($data)-1),1); ?我我在刷新的时候出现过只有3个数字和2个数字的情况,代码更改后这个bug就没有了。

正在回答

4 回答

rand()这个函数包括0到strlen()的数据,如果没有strlen($data)-1的话,时不时的会少一个数字。因为strlen($data)这个数据不存在。字符串的长度才为strlen($data).字符串在这方面和数组相似。

0 回复 有任何疑惑可以回复我~
#1

追觅梦初的国度

下标从0开始的,所以要减1
2015-04-28 回复 有任何疑惑可以回复我~

我也有这个问题,只不过是3个数字,还是按几率出现的,这几率还蛮大的,按照你说法我一改果然没有 了,(*^__^*)

0 回复 有任何疑惑可以回复我~

不错,我也发现了.

0 回复 有任何疑惑可以回复我~

真的耶,很棒~我也有這個bug

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
PHP实现验证码制作
  • 参与学习       37916    人
  • 解答问题       321    个

各种形态验证码核心原理与实现技巧,讲解实现过程中的技术难点

进入课程
意见反馈 帮助中心 APP下载
官方微信