2012-05-23 131 views
2

之前重定向這是我的第一頁上的代碼:等待時間在PHP

session_start(); 
if(isset($_SESSION[$login])){ 
    header("Refresh: 5; location:page2.php"); 
    echo "Welcome back!"; 
} 

我認爲這是在5秒的停頓,其中,用戶可以看到該消息後在第2頁重定向方式「歡迎回來」。我錯了嗎?

我的代碼的結果是登錄的正確標識,隨後顯示echo「Welcome Back」,但重定向沒有發生。我永遠留在page1中。

錯誤在哪裏?

ps:我搜索了類似的線程,但是我無法解決這個問題,所以我在這裏發佈的人,謝謝!

+0

http://forums.digitalpoint.com/showthread.php?t=415725 –

+2

請勿使用延遲重定向。消息足夠重要,足以在用戶閱讀並點擊之前顯示給用戶,或者它不足以將用戶延遲X秒(在此期間他們可能會或可能不會看着屏幕)。 – Quentin

+0

我明白你說了什麼,但即使切掉「刷新」也不起作用。這意味着我在頭部功能上犯了一個錯誤,但我沒有得到... – bransharp

回答

-3

使用php的睡眠功能。這應該完成工作:

session_start(); 
if(isset($_SESSION[$login])){ 
sleep(5); 
header("location:page2.php"); 
echo "Welcome back!"; 
} 
+2

請不要這樣做。 – alex

+0

不要。頁面加載時間將爲5秒,重定向將在頁面加載後立即發生。使用sleep()時要非常小心! – ONOZ

+0

我知道SLEEP無法解決我的問題! :)謝謝無論如何.. – bransharp

2

我相信你需要使用url=而非location:

header("Refresh: 5; url=page2.php"); 

不幸的是,這是執行重定向的非標準方式(和不是那麼棒),所以我一直無法找到任何文件。

+0

相同的結果.... :( – bransharp

+0

http://stackoverflow.com/questions/18305258/display-message-before-redirect-to-other-page#comment35908148_18305289帶領我到http:// stackoverflow.com/questions/283752/refresh-http-header這說明,以及不標準刷新標題也導致在Internet Explorer中的性能問題。 – Edward

0

這可能是由於您使用的是"location"而不是"url"

試試這個:header("Refresh: 5; URL=page2.php");

"location"在JavaScript中,用於執行重定向。

+0

相同的結果.. :( – bransharp

+0

也許'header(「刷新:5; page2.php「)'? –

0
session_start();  
if(isset($_SESSION[$login])){  
    header("Refresh: 5;page2.php");  
    echo "Welcome back!";  
} 

這是我簽出的代碼。在page2.php中你應該使用相對路徑。

+0

添加簡要說明,瞭解已更改內容和原因。 – Ziumin

+0

如果我們在頁面名稱前面使用url或者location,那麼它會像我在這裏寫的那樣去找url,但是如果我們只使用路徑,那麼它就是我在這裏寫的頁面。 – MuteX

+0

我想感謝「bummi」。 – MuteX