2013-10-16 101 views
1

我有一個PHP代碼點火器上寫的程序需要你的幫助!已經嘗試了3周!Codeigniter無法刷新頁面會話銷燬後,直接

我htaccess的國防部重寫,使http://www.sampleurl.com/controllername代替http://www.sampleurl.com/index.php/controllername

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule .* index.php/$0 [PT,L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    # If we don't have mod_rewrite installed, all 404's 
    # can be sent to index.php, and everything works as normal. 

    ErrorDocument 404 /index.php 
</IfModule> 

我有儀表板控制器(目前用於測試會話。)

public function index() 
    { 
      $is_logged_in = $this->session->userdata('fb_session'); 

      $data = array(
       'fb_data' => $is_logged_in, 
      ); 

      if (!isset($is_logged_in) || $is_logged_in != true){ 
       redirect('/error'); 
      } 


     } 

下面是功能假設殺死當前會話並重定向到儀表板頁面。

$('#logoutbtn').click(function(){ 
     $.ajax({ 
      type:"POST", 
      url: "/fbcontroller/killsession", 
      datatype: "json", 
      success: function(){ 
       alert("Logout"); 
      } 
     }); 
    }); 


public function killsession(){ 
      $this->session->sess_destroy(); 
      redirect('/dashboard'); 
     } 

問題1:當我從1控制器中的函數重定向到另一個控制器時,重定向在此處失敗。而不是指向儀表板,螢火蟲顯示404錯誤,頁面未找到。在響應中,它顯示/錯誤頁面的所有HTML代碼。這是否意味着重定向的作用?如果是,爲什麼它不顯示在瀏覽器上?

問題2:會話被銷燬,但登錄頁面會保留,即使我刷新(F5)。

+0

我懷疑它是導致這些問題的htaccess的。 –

+0

有關您的信息,session_destroy();通過銷燬會話解決了問題,當我執行F5刷新時,它將用戶註銷。但是,重定向後會話在那裏很奇怪。 –

回答

3

htaccess的,我建議:

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)\?*$ index.php/$1 [L,QSA] 

而且知道當你殺死會議CI將在你的下一個頁面加載創建一個新的1(在你的情況下對重定向)..會議不僅僅是爲用戶登錄。

不要在應用程序/配置/ config.php文件忘記設置

$config["index_page"] = ''; 
+0

嗨斯韋特利奧,它不能解決POST的問題../index.php/fbcontroller/killsession 404 Not Found 650ms \t 在控制檯中。請用你的答案給我啓發。 :) –

+0

殺戮行動在哪裏?在FB控制器? – Svetoslav

+0

是的,它會殺死從班級創建的會話。 –