最新最全的移动资源,海量教程攻略!

网站首页 > 技术支持 > discuz > discuz使用教程 > Discuz! X2验证码的发生和验证及随机数发生切磋

Discuz! X2验证码的发生和验证及随机数发生切磋

作者: 资源猫 时间: 2020-02-14 12:43:05 人气: 7

第二句的意思为,给要表现出来的验证码配置一个表现的模板名目,$sectpl 这个变量对应的就是模板,配置 $sectpl 可以让验证码的表现与当前页面的名目更好的团结。从示例的模板代码中可以看出,只有 <sec> 不属于 HMTL 尺度代码,并且呈现了 3 次,这 3 次别离代表:“验证码”笔墨、验证码输入框、验证码图片,如下图所示:

执 行的 JS 首要就是执行了 updateseccode 这个函数,直接点击验证码图片执行的也是这个函数。函数中的 SQq29j20 是当前页面验证码的独一字符串 idhash,他是由是否为Ajax哀求、session id、自增数字构成,此处不必穷究其寄义。

,从表现了验证码开始,3分钟后自动将验证码图片换为“革新验证码”的笔墨,点击该笔墨就执行 updateseccode 这个函数,从头更新验证码。由此可以看出,此种方法可以很好的办理验证码逾期的题目。

这部门开始是先做了一些安详性的验证,最后是按照给定的参数和由 make_seccode 天生的验证码字符串,天生验证码的图片,以是中间是重点。

从函数中可以看到,验证码 $seccode 起首来自一个6位的随机数字 random(6, 1) (此函数怎样事变,最后讲授)。

此函数起首按照缓存中的设定验证验证码的开启状态,假如未开启,此处验证直接返回真,既然没有开启验证码天然怎样验证均为真。

然后验证 cookie 中是否存在天生验证码时写入 cookie 的值(譬喻:seccodeSQq29j20),假如 cookie 没有此值,则此次验证失效,必要从头天生验证码,从头验证。

最后从 cookie 取出值,行使 $_G[config][security][authkey] 加密串,通过 authcode 函数对值举办解密,解密后获取到验证码、天生时刻、idhash、formhash 四个值。然后必要同时满意以下四个前提才可以通过验证:

submitcheck 函数一样平常只填写前两个参数即可,第一个参数暗示要验证的表单位素的名字,此表单位素不存在则验证失败;第二个参数暗示是否应承通过 GET 方法提交的数据通过验证,0 为不应承,1 为应承,一样平常为 0 即可。

后两个参数用于暗示提交的表单中是否必要对验证码和验证问答做验证,第三个参数 $seccodecheck 代表验证码,第四个参数 $secqaacheck 代表验证问答,参数值都是 0 为不验证,1 为验证。

进入函数中会现对提交表单的提交方法、formhash、会见来历 referer 等数据举办安详性验证,通事后则会挪用 check_seccode 函数对提交过来的验证码举办验证了,按照 check_seccode 的返回值,来给以差异的提醒。 check_seccode 函数怎样事变的参看 JS 验证中的 4) 即可。

此函数有两个参数,$length 暗示要获取的随机数的位数,$numeric 暗示是否要获取纯数字的随机数,取值 0 或 1。

函数起首行使 microtime 函数获取当前的微秒级时刻戳字符串,然后在后头拼接上单前网站的根目次路径,然后举办 MD5 加密,得到 32 位长的字符串。之后对其举办转进制,假如要获取纯数字的随机数,则从 16 进制转为 10 进制,假如要得到数字和英文稠浊的随机数,则从 16 进制转为 35 进制。之后再将转进制后得到的字符串,按照是否要获取纯数字随机数的区别,举办拼接。最后从拼接后的字符串中随机抽取随机数的第一位、第二位以此类推,直 至获取满意要求的随机数的位置为止。至今天生了随机数。 本文地址:

感谢访问资源猫吧,本站所有资源均来自互联网或用户分享,如您发现本站存在侵权或违规内容,请来邮件告知我们! 资源分享/侵权下架/商务合作联系邮箱:qiazou77ziyuan@126.com