2013-11-25 52 views
0

我正在使用Codeigniter作为应用程序并添加了Tank_Auth作为身份验证系统。销毁与Codeigniter和Tank_Auth库的会话

本地(XAMPP)的东西完美工作(登录,注销)。在服务器上,虽然我注意到一个错误,当我登录时,我经历了,当我注销时,我被重定向到登录页面,当我马上做同样的事情时,我登录,我在,我注销..我是仍然在注销不再工作。

我想知道这是否是cookie/session问题。

我的注销功能是这样的:

function logout() 
    { 
     $this->db->cache_delete_all(); 
     $this->tank_auth->logout(); 
     $this->session->sess_create(); 

     //$this->_show_message($this->lang->line('auth_message_logged_out')); 
       redirect('/auth/login/','refresh'); 

     //$this->_show_message($this->lang->line('auth_message_logged_out')); 

    } 

服务器verison和本地版本之间的唯一区别是htaccess的,我想知道,如果这有什么与

我htaccess是

<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access 1 week" 
ExpiresByType image/jpeg "access 1 week" 
ExpiresByType image/gif "access 1 week" 
ExpiresByType image/png "access 1 week" 
ExpiresByType text/css "access 1 week" 
ExpiresByType application/pdf "access 1 week" 
ExpiresByType text/x-javascript "access 1 week" 
ExpiresByType application/x-shockwave-flash "access 1 week" 
ExpiresByType image/x-icon "access 1 week" 
ExpiresDefault "access plus 1 year" 
</IfModule> 

<ifModule mod_gzip.c> 
mod_gzip_on Yes 
mod_gzip_dechunk Yes 
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ 
mod_gzip_item_include handler ^cgi-script$ 
mod_gzip_item_include mime ^text/.* 
mod_gzip_item_include mime ^application/x-javascript.* 
mod_gzip_item_exclude mime ^image/.* 
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
</ifModule> 

DirectoryIndex index.php 
RewriteEngine on 
RewriteBase /app/ 
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico) 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ ./index.php?/$1 [L,QSA] 
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript text/css application/javascript 

任何想法?

感谢

编辑:问题解决

这是造成会话注销问题ExpiresDefault "access plus 1 year" 删除这条线的认证工作就像一个魅力后

回答

2

尝试是这样的:

function logout() 
{ 
    $this->delete_autologin(); 
    $this->tank_auth->logout(); 
    // See http://codeigniter.com/forums/viewreply/662369/ as the reason for the next line 
    $this->ci->session->set_userdata(array('user_id' => '', 'username' => '', 'status' => '')); 


     $this->ci->session->sess_destroy(); 
} 

注意:如果您的托管服务提供商禁用然后从.htaccess

+0

mod_gzip部分尝试这种解决方案,还是同样的行为(高速缓存清理和浏览器重新启动) – Rad

+0

我删除htaccess的的mod_gzip的一部分,它的工作完美,什么在mod_gzip模块这部分可以导致这种行为? – Rad

+1

mod_gzip是Apache的外部扩展模块,它允许您在将文件发送给客户端之前快速轻松地压缩文件。这加快您的网站像疯了一样,你的主机提供商已禁用mod_gzip模块,这就是为什么它导致问题 –