我在我的一个应用程序中使用CI,在这里我实现CI验证码。我使用random_string('alnum', 8)
来创建大写和小写组合验证码。用户必须在此处编写完全显示在图像中的验证码;这是案例性的。在这里,我需要添加一些技巧;我想删除casesensivity,用户可以使用大写或小写填充验证码,如图所示。
这是我的验证码实现代码 -
$cap_word = random_string('alnum', 8);
$options = array(
'word' => $cap_word,
'img_path' => './captcha/',
'img_url' => base_url() . 'captcha/',
'font_path' => './fonts/custom.ttf',
'img_width' => 150,
'img_height' => 30,
'expiration' => 7200
);
$cap = create_captcha($options);
这是我的回调函数 -
public function validate_captcha_code() {
$cap = $this->input->post('captcha_code');
if($cap != $cap_word) {
$this->form_validation->set_message('validate_captcha_code', 'Wrong captcha code, Please try again.');
return false;
}else{
return true;
}
}
答案 0 :(得分:1)
将验证功能更新为: 我已经使用了strtolower()。
public function validate_captcha_code() {
$cap = strtolower($this->input->post('captcha_code'));
if($cap != strtolower($cap_word)) {
$this->form_validation->set_message('validate_captcha_code', 'Wrong captcha code, Please try again.');
return false;
}else{
return true;
}
}
答案 1 :(得分:0)
看一下PHP的strcasecmp函数。
答案 2 :(得分:0)
您只需更新您的验证功能 -
public function validate_captcha_code() {
$cap = $this->input->post('captcha_code');
if(strtolower($cap) != strtolower($cap_word) || strtoupper($cap) != strtoupper($cap_word)) {
$this->form_validation->set_message('validate_captcha_code', 'Wrong captcha code, Please try again.');
return false;
}else{
return true;
}
}
试试这个希望大小写都适用。让我知道发生了什么。