0

我在我的一个应用程序中使用 CI,在这里我实现了 CI 验证码。我random_string('alnum', 8)用来创建大小写组合验证码。在这里,用户必须编写与图像完全相同的验证码;这是区分大小写的。在这里我需要添加一些技巧;我想删除大小写敏感,即用户可以用大写或小写填充验证码,如图所示。

这是我的验证码实现代码-

$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;
    }
}
4

3 回答 3

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;
 }
}
于 2013-08-22T09:02:09.943 回答
0

看看 PHP 的strcasecmp函数。

于 2013-08-22T09:02:43.780 回答
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;
        }
}

试试这个希望这适用于大写和小写。让我知道发生了什么事。

于 2013-08-22T09:04:50.070 回答