如何实现PHP验证码的不区分大小写校验?
实现验证码不区分大小写校验的方法
实现你要的效果非常简单,仅需修改验证码校验逻辑即可,无需调整验证码生成代码:
核心逻辑
你当前的验证码生成规则里,允许的字符集本身只有小写字母和数字,只要在校验时将用户提交的内容和Session中存储的正确验证码统一转为小写(数字不受大小写转换影响)再做对比,就能实现不区分大小写的校验效果。如果后续你调整生成规则允许输出大写字母,也可以在生成验证码存入Session时就统一转成小写,保持校验逻辑一致即可。
修改后的校验代码
<?php session_start(); if(strtolower($_POST['captcha']) != strtolower($_SESSION['captcha_text'])) { die("抱歉,您输入的验证码不正确!"); } session_destroy(); ?>
原来的校验逻辑是直接对字符串做区分大小写的相等判断,所以大小写不一致就会判定为错误,加上strtolower()处理后就可以适配你要求的使用场景。
内容的提问来源于stack exchange,提问作者AustinHawkins
相关产品推荐
相关产品推荐

