2013-10-12 38 views
0

我有一個URL包含一個變量,我希望通過該變量來確定要重定向到哪個頁面。我曾嘗試在Switch語句中使用Meta重定向,但它不起作用。我做錯了什麼?我想根據URL中的變量重定向,我該如何在PHP中做到這一點?

<?php 
setcookie("affiliate", $_GET['a'], time()+31536000); 
?> 

<!DOCTYPE html> 

<html> 
<body> 

<?php 
switch($_GET['p']) 
{ 
case"h": 
echo "<meta http-equiv="refresh" content="1; url=website/">"; 
echo "redirecting in 1 second"; 
echo "if this page does not redirect <a href="website/">click here.</a>"; 
    break; 

case"w": 
echo "<meta http-equiv="refresh" content="1; url=website/watches.html">"; 
echo "redirecting in 1 second"; 
echo "if this page does not redirect <a href="website/watches.html">click here.</a>"; 
    break; 

case"sf": 
echo "<meta http-equiv="refresh" content="1; url=website/watches/solar-flare.html">"; 
echo "redirecting in 1 second"; 
echo "if this page does not redirect <a href="website/watches/solar-flare.html">click here.</a>"; 
    break; 

default: 
echo "incorrect page option"; 
} 
?> 

</body> 
</html> 

謝謝:)

克里斯

回答

0

使用header功能:

header('Location: index.php'); 

header('Location: http://google.com'); 

,而不是打印的meta標籤。

注意:必須在頁面上打印任何內容之前使用header函數。所以我建議你在你的代碼頂部移動你的開關。

+0

感謝,但我不認爲做什麼,我需要的。我需要查看者看到消息1秒,然後頁面重定向,並且對於每個變量選項,手動鏈接需要是不同的。 – user2873385

+0

好的,沒問題,那麼你應該打印頭標籤裏面的meta標籤。交換機可能在那裏。對於每種情況,您都可以聲明一個$ messageForUser並在body標籤中正確輸出消息。 –

+0

謝謝我會嘗試。 Chris – user2873385

0

您可以X秒後使用重定向refresh=X;url=Y頭:

<?php 
setcookie("affiliate", $_GET['a'], time()+31536000); 

switch($_GET['p']) { 
    case"h": 
     header("refresh:5;url=website/"); 
     $body = "redirecting in 1 second<br />" . "if this page does not redirect <a href=\"website/\">click here.</a>"; 
     break; 

    case"w": 
     header("refresh:5;url=website/watches.html"); 
     $body = "redirecting in 1 second<br />" . "if this page does not redirect <a href=\"website/watches.html\">click here.</a>"; 
     break; 

    case"sf": 
     header("refresh:5;url=website/watches/solar-flare.html"); 
     $body = "redirecting in 1 second<br />" . "if this page does not redirect <a href=\"website/watches/solar-flare.html\">click here.</a>"; 
     break; 

    default: 
     $body = "incorrect page option"; 
} 
?> 

<!DOCTYPE html> 

<html> 
<body> 

    <?= $body ?> 

</body> 
</html> 
+1

是的,這工作,非常感謝您的幫助! Chris – user2873385

+0

如果你喜歡答案,請接受答案。 [接受答案:它是如何工作的?](http://meta.stackexchange.com/a/5235/235870)。 –

相關問題