2013-12-10 27 views
1

所以我使用jQuery Mobile和PHP通過這個代碼PHP腳本註銷不正確重定向

登錄我的網站的訪問註銷代碼你點擊退出按鈕。編碼這樣

<div data-role="footer" data-id="foo1" data-position="fixed"> 
     <div data-role="navbar" data-iconpos="top"> 
      <ul> 
       <li><a href="logout.php" data-transition="none" data-icon="delete">Sign Out</a></li> 
      </ul> 
     </di> 
    </div> 

這是logout.php腳本

session_start(); 
session_destroy(); 
header('location: login.php'); 

它可以在登錄了我,並帶我到登錄頁面,但該網址是

mysite.com/logout.php 

代替

mysite.com/login.php 

它顯示第e login.php的信息,但網址是錯誤的。我如何解決這個問題?

+0

您是否確定在更改標題後不回顯任何內容? – qwertynl

+1

_「[...它使我登出並帶我登錄頁面...]」_如果url不更改,如何將您帶到登錄頁面? – user555

+0

空白頁通常表示錯誤報告已關閉,但會生成錯誤或警告,但您沒有看到它們。在header('location:page.php')之後使用'exit()'''''''''''''''''''''''''''''''。 – user555

回答

1

當使用外移動框架鏈接到一個網頁如jQuery移動的,必須包括在href rel="external">

例如:

<a href="logout.php" data-transition="none" data-icon="delete" rel="external">Sign Out</a> 

這是極其重要的,否則會認爲你希望它留在你排在同一頁。

2

嘗試這樣:

header('Location: login.php'); 
die(); 

是否有任何錯誤拋出?

BTW:你也可以試試這個:

session_start(); 
session_destroy(); 
die("<meta http-equiv='refresh' content='0;url=login.php'>"); 
+1

這裏'die()'很重要,它會阻止頁面進一步加載並重定向到標題位置。 +1 – Rao

+0

就我所知我沒有任何錯誤我添加了兩個例子,你給我既不似乎工作。我也編輯了這個問題來顯示一個現場示例 –

+0

它似乎正常工作。在您的現場測試中,我可以登錄和註銷,再次登錄頁面中的腳本沒有空白頁 – mursang

1

我需要改變

<li><a href="logout.php" data-transition="none" data-icon="delete">Sign Out</a></li> 

<li><a href="logout.php" data-transition="none" data-icon="delete" rel="external">Sign Out</a></li> 

有人指出,與jQuery Mobile的還以爲我想留在頁面,所以我需要添加rel="external"

我還添加die("<meta http-equiv='refresh' content='0;url=login.php'>");到腳本

這兩項固定的問題

+1

這就是我在'rel =「external」'(15分鐘前)提交的內容中寫出的內容,但是您從未困擾我回答。所以我刪除了它。你真的應該檢查評論,他們站在一樣重要的張貼答案。 –

+0

好吧,當我嘗試它並回來感謝你,你已經刪除它! –

+0

我不會等待15分鐘左右。我有更好的事情要做。自從問世以來,我一直在使用jQuery mobile。 –