2012-05-15 33 views
0

我正在使用codeigniter來處理具有用戶註冊功能的Web應用程序。而且我在大多數地方使用ajax來加載頁面。問題是,如果通過ajax調用某個函數來加載頁面,並且如果會話不存在,那麼它不會重定向到登錄頁面。但是,當我們通過瀏覽器訪問相同的URL時它正在工作(它正在重定向到登錄頁面)。我該怎麼做才能解決這個問題?如果會話不存在,Codeigniter ajax函數不會重定向到登錄頁面

這是檢查我們正在使用的會話的代碼。

$userid=$this->phpsession->get('userid'); 
    if(!($userid)) 
    { 
     redirect('home','refresh'); 
    } 
+0

請張貼AJAX代碼,登錄控制器。 – Adam

+0

ajax不會執行重定向('home','refresh'); – Adam

回答

1

在您的控制器檢測,如果它是一個Ajax請求:

if($this->input->is_ajax_request()) 
{ 
    $userid=$this->phpsession->get('userid'); 
    if(!($this->usermodel->is_user($userid))) 
    { 
     echo "1"; 
    } 
} 

阿賈克斯檢測響應並重定向到登錄頁面:

$.post('index.php/login', function(data){ 

if(data == "1") 
{ 
document.location.href = <?php echo site_url("home"); ?>; 
} 

}); 
+0

感謝您的回答亞當。我會檢查這一點。 – Stranger

+0

這是一個壞主意。如果該人員禁用JavaScript,則不會重定向他們。 – gorelative

+1

@Mike我建議將ajax代碼添加到控制器中,而不是刪除舊代碼。 – Adam

相關問題