首页 > 解决方案 > CodeIgniter 图像验证

问题描述

我想在我的登录表单中添加图像验证,但我不知道如何强制用户进行验证(因为无需填写机器人表单即可登录)

这是我的控制器:

    public function login(){
        if(isset($_POST['login']) && $_POST['login'] == 1){
            foreach($_POST as $key=>$value){
                $this->Maccount->$key = trim($value);
            }
            
            if(!isset($this->Maccount->user))
                $this->errors[] = 'No username given.';
            else{
                if(!isset($this->Maccount->password))
                    $this->errors[] = 'No password given.';
                else{
                    if(!$this->Maccount->valid_username($this->Maccount->user))
                        $this->errors[] = 'Invalid username.';
                    else{
                        if(!$this->Maccount->valid_password($this->Maccount->password))
                            $this->errors[]  = 'Invalid password.';
                        else{
                            if($this->Maccount->login_user()){
                                header('Location: '.$this->config->base_url.'account');
                            }
                            else{   
                                $this->errors[] = 'Wrong username or password.';
                            }
                        }
                    }
                }
            }
        }
        if(!empty($this->errors)){
            $this->load->set('errors', $this->errors);
        }
        $this->load->view($this->load->get('tmp').DS.'account'.DS.'login');
    }

这是我的 html 表单:

<form id="login" name="login" method="post" action="<?php echo load::get('base_url');?>account/login" accept-charset="UTF-8">
 <input id="login_field" type="text" name="user" id="user" required placeholder="Account">
 <input id="login_field" name="password" id="password" type="password" required placeholder="*******">
   <input name="submit" type="image" value="Log In" src="<?php echo load::get('base_url');?>assets/<?php echo load::get('tmp');?>/images/login.png">
 <input type="hidden" name="login" value="1" />
 <img src="<?php echo load::get('base_url');?>image_verify.php" alt="Image Verify">
 <input name="bot" type="text" class="post" id="bot" size="6" maxlength="10">
</form>

标签: phpcodeigniter

解决方案


推荐阅读