[eluser]jblack199[/eluser]
I left my sess_expiration @ 7200 personally, and in my code i check for time()-3600
Code:
function valid_admin()
{
if ($this->session->userdata('intime') == '' && $this->uri->segment(2) != "login" && $this->uri->segment(2) != "logout") {
$login = "0";
return $login;
} else if ($this->session->userdata('intime') < time()-3600 && $this->uri->segment(2) != "login") {
$this->session->sess_destroy();
$login = "You have been idle for at least 3600 seconds, please login again.";
$this->session->set_userdata('err', $login);
} else {
$query = $this->db
->where('email', $this->session->userdata('email'))
->where("password like binary '".$this->session->userdata('password')."'", NULL, FALSE)
->where('usergroup', '3')
->where('status', '1')
->get('users');
$cnt = $query->num_rows();
if ($cnt < 1) {
$this->session->sess_destroy();
$login = "There was a problem validating your credentials. Please login again";
} else {
foreach ($query->result() as $row){
$this->session->set_userdata('email', $row->email);
$this->session->set_userdata('password', $row->password);
$this->session->set_userdata('fname', $row->firstname);
$this->session->set_userdata('lname', $row->lastname);
$this->session->set_userdata('usergroup', $row->usergroup);
$this->session->set_userdata('status', $row->status);
$this->session->set_userdata('intime', time());
$this->session->set_userdata('logged_in', TRUE);
}
$login = "1";
}
}
return $login;
}
Although i just noticed I missed a session set to produce an error... I have this in a model, i tried doing it in a helper but it didnt work...
so in every controller i run:
Code:
function __construct()
{
parent::__construct();
$this->load->model('loginmodel');
$valid = $this->loginmodel->valid_admin();
if ($valid != 1){
$this->data->session['err'] = $valid;
redirect('adm/login/', 'refresh');
}
}
and so far it seems to work fine.. only difference is, you're using a database and im not.