2015-11-16 36 views
1

花費時間瘋了最簡單的PHP如果聲明;這種基於時間的重定向:.php重定向文件無法讀取新文件信息

<?php 

$time = date("Hi"); 

if ($time < "1400") { 
header("Location: http://eurogamer.net"); 
} 
else { 
header("Location: http://ign.com"); 
} 

?> 

的年齡(我是相當新的PHP ...)我無法弄清楚,爲什麼重定向的工作,但1400年後不會更新到新的URL。然後,我在另一臺設備上進行了測試,結果DID可以正常工作,但兩者似乎都存儲了人們首次將其導向PHP文件時看到的重定向,然後每次都將它們發送到那裏。

由於這裏的計劃是根據一天中的時間將人們引導到不同的註冊頁面,所以如果人們重新訪問該頁面,並將其定向到不再有效的舊註冊頁面,則會出現問題...

有沒有辦法強制這些代碼的規則每次他們訪問,或我卡在這裏?

已解決:將重定向從PHP頭函數切換到Javascript似乎解決了這個問題!

<?php 

$time = date("Hi"); 

if ($time < "1400") { 
    echo "<script type='text/javascript'>window.location.href = 'http://eurogamer.net';</script>"; 
die(); 
} 
else { 
echo "<script type='text/javascript'>window.location.href = 'http://ign.com';</script>"; 
die(); 
} 

?> 
+0

很可能它是瀏覽器緩存,所有現代瀏覽器都有一個控制檯可以診斷這些東西。 –

回答

0

使用header(Location:)重定向使用die()或之後exit()

if ($time < "1400") { 
    header("Location: http://eurogamer.net"); 
    die(); 
    } 
    else { 
    header("Location: http://ign.com"); 
    die(); 
    } 

Refer

Php header location redirect not working

+1

謝謝 - 添加了這個,雖然它似乎沒有解決任何不幸的事情... –

+0

你有沒有通過提到的鏈接? –

+0

我有第一個鏈接。 –

0

我覺得你應該把這個作爲一個307重定向(臨時),以確保瀏覽器的緩存並干擾:

<?php 

    $time = date("Hi"); 

    if ($time < "1400") { 
    header("HTTP/1.1 307 Temporary Redirect"); 
    header("Location: http://eurogamer.net"); 
    } 
    else { 
    header("HTTP/1.1 307 Temporary Redirect"); 
    header("Location: http://ign.com"); 
    } 

?> 

而且 - 測試其,請嘗試清除所有瀏覽器緩存。

+0

試過這個,但每個設備仍然只是加載第一次測試時使用的原始頁面。在這臺電腦上,它實際上在不同的瀏覽器上都有相同的功能 - Firefox正在打開Chrome瀏覽器最初訪問過的相同頁面。 –