|
我在写后台管理员登陆时,用到了CI当中的session类。
我使用的登陆逻辑是这样的:
当管理员登陆成功后,把管理员的信息存放在session当中,然后利用session里的信息对后台进行操作。当会员退出时,注销所有的session变量。
登陆时的代码如下
PHP复制代码
function login (){
if($_SERVER['REQUEST_METHOD']=='POST')
{
$user_name=$this->input->post('user_name');
$password=$this->input->post('password');
$query=$this->db->get_where($pre_fix.'admin',array('user_name'=>$user_name,'password'=>$password));
if($query->num_rows==1)
{
$tmp=$query->result_array();
session_start();//开始注册session
$info['id]=$tmp[0]['id ];
$info['user_name']=$tmp[0]['user_name'];
$info['nick_name']=$tmp[0]['nick_name'];
$info['logins']=$tmp[0]['logins'];
$this->session->set_userdata('admin_info',$info);
return true;
}
else
{
return false;
}
}}
复制代码
退出的代码如下
PHP复制代码
function loginout(){
$this->sessioon->sess_destroy();//注销所有session变量
redirect('admin/login','refresh');//这是退出到登陆页面
}
复制代码
以上是我所写的登陆和退出的方法。我程序所出现的总是每当我在后台进行操作后,跳转到其他网站的页面进行操作后再回到这个后台进行任何一个操作都会跳转到登陆页面。这里我所写的代码只是简写的部分代码,我程序中的代码不存在着错误,如果这里的代码有错误,那只是敲入时敲错了。我在网上也查找了相关的信息,别人都说是session里所设置的时间太短了。但是假便我session里的时间设置了四个小时,也会操作十几分钟后就会跳转到登陆页面。我也不知道这是为什么?望高手给点提示或给点解决办法!谢谢了。
这里是我config.php中session的配置代码:
PHP复制代码
$config['sess_cookie_name'] = 'session';
$config['sess_expiration'] = 0;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ker_sessions';
$config['sess_time_to_update'] = 30*60*60;
$config['sess_lifetime'] = 30*60*60;
$config['sess_match_ip'] = TRUE;
复制代码
不知道我所描述的问题说明白了没有?在线等待高手解决!菜鸟不甚感激!!!如有不明白,我再给你描述。 |
|