0

I would like to add image verification to my login form, but I don't know how to force users to verify (because login works without filling out the bot form)

This is my controller:

    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');
    }

and this is my html form:

<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>
Md. Yeasin Sheikh
  • 54,221
  • 7
  • 29
  • 56

0 Answers0