2014-02-20 128 views
0

在我的項目中,標題只加載一次。所有項目的其餘部分使用AJAX方法添加和刪除Windows。在不使用標題的情況下重定向頁面

因爲我無法更改標題(頁面始終加載),所以對於一個細節,一切都很好。如果他的會話已過期,我如何將客戶端轉移到登錄屏幕?

到目前爲止,我使用(在我的會話類):

public function LoginRedirect() { 
//This function will redirect the user to the login page if the session is not valid. Will send GET Reason. 
    $urlMessage = rawurlencode(utf8_encode($this->ErrMsg)); 
    echo '<script language="javascript"> window.location = "' . $this->RedirectURL . '?ErrMsg=' . $urlMessage . '";</script>'; 
} 

但我不喜歡使用JavaScript頁面重定向到登錄界面。有什麼其他的技巧可以使用嗎?

謝謝

+0

你可以建立在CI猜測Apache的會話管理模塊,並有處理會議和重定向...不知道我會推薦它 - 看起來像是過度殺傷:P – CD001

回答

0

如果你不想使用頁眉,你可以設置一個<meta>標籤做重定向:

$newURL = $this->RedirectURL.'?ErrMsg='.$urlMessage; 
echo '<meta http-equiv="refresh" content="0;url='.$newURL.'">'; 
+0

我可以在文檔頭部以外使用元嗎?由於我的文檔已經加載,並且驗證是通過AJAX完成的) –

+0

它會在技術上***是無效的標記,但瀏覽器已經開發出解釋標記的方法,因此您可以***使用它,但是建議在頭元素中使用它們。你可以在這裏閱讀更多關於它:http://stackoverflow.com/questions/1447842/what-happens-if-the-meta-tags-are-present-in-the-document-body JavaScript重定向可能是你最好的選擇。 – Anonymous

+0

謝謝你,我認爲,如果可以的話,我會盡力找出另一種方式。我想一直保持「xhtml嚴格」!但你確實回答了我的問題。 –

相關問題