'signin page redirecting again to signin page in codeigniter

Controller

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

class Signin extends CI_Controller {

public function __construct(){
    parent::__construct();
    $this->load->helper('cias');
    $this->load->model('home_model');
    $this->load->model('signin_model');
}

public function index(){
    $this->is_signed_in();
}

function is_signed_in()
{
    $is_signed_in = $this->session->userdata('is_signed_in');
    
    if(!isset($is_signed_in) || $is_signed_in != TRUE)
    {
        // header
        $data['logo'] = $this->home_model->get_logo_by_id();
        // footer
        $data['contact']=$this->home_model->get_contact();
        $this->load->view('front/signin');
    }
    else
    {
        redirect('front/dashboard');
    }
}

public function signinme()
{
    $this->load->library('form_validation');
    
    $this->form_validation->set_rules('email', 'Email', 'required|max_length[128]|trim');
    $this->form_validation->set_rules('password', 'Password', 'required|max_length[32]');
    
    if($this->form_validation->run() == FALSE)
    {
        $this->index();
    }
    else
    {
        $email = strtolower($this->security->xss_clean($this->input->post('email')));
        $password = $this->input->post('password');
        
        $result = $this->signin_model->sign_in_me($email, $password);
        
        if(!empty($result))
        {
            $session_array = array('user_id'=>$result->user_id,                    
                                    'name'=>$result->name,
                                    'email'=>$result->email,
                                    'phone'=>$result->phone,
                                    'is_signed_in' => TRUE );

            $this->session->set_userdata('logged_in', $session_array);
            
            redirect('./dashboard');
        }
        else
        {
            $this->session->set_flashdata('error', 'Email Address or password mismatch');
            
            $this->index();
        }
    }
}

}

Model

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

class Signin_model extends CI_Model { // This function used to check the login credentials of the user function sign_in_me($email, $password) { $this->db->select('*'); $this->db->from('user_login'); $this->db->where('email', $email); $this->db->where('isdeleted', 0); $query = $this->db->get();

    $user = $query->row();
    
    if(!empty($user)){
        if(verifyHashedPassword($password, $user->password)){
            return $user;
        } else {
            return array();
        }
    } else {
        return array();
    }
}

function get_user_info_id($user_id){
    $this->db->select('*');
    $this->db->from('user_login');
    $this->db->where('user_id', $user_id);
    $query = $this->db->get();
    
    return $query->row();
}

}

Want to redirect

<?php if(!defined('BASEPATH')) exit('No direct script access allowed');

require APPPATH . '/libraries/FrontController.php'; class Dashboard extends FrontController {

public function __construct(){
    parent::__construct();
    $this->load->helper('cias');
    $this->load->model('home_model');
    $this->load->model('signin_model');
    $this->is_signed_in();
}

public function index(){
    $this->load->view("front/dashboard", $data);
}

function signout() {
    $this->session->sess_destroy ();
    
    redirect ( 'signin' );
}

}



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source