2012-11-24 115 views
0

我試圖做一個重定向頁面,當您訪問www.website.com/redirect.php?link=http://example.com,在幾秒鐘內您的瀏覽器將重定向到在顯示重定向免責聲明後,您將訪問example.com。您的幫助將不勝感激!PHP重定向到URL變量

+0

目標鏈接是否需要獲取參數? –

回答

5

JavaScript的作品,但你不需要它,只是使用元刷新

<?php 

$url=$_GET['link']; 

?> 
<html> 
    <head> 
     <title>Rediercting</title> 
     <meta http-equiv="refresh" content="10;URL='<?php echo $url; ?>'" /> 
    </head> 
    <body> 
     <p><a href="<?php echo $url; ?>">Redirecting to <?php echo $url; ?></a></p> 
     <p>Some disclaimer</p> 
    </body> 
</html> 
+1

擊敗我!這個答案是最好的,因爲它不需要Javascript(萬一它被禁用)並且對搜索引擎友好。 – joequincy

+0

非常感謝! – user1059021

+1

只需要澄清一下:在URL之前的'10;'是刷新前的秒數。根據需要更改它。 – joequincy

1

PHP是一個服務器端腳本,所以你將不能在延遲後重定向(因爲這會發生在頁面加載後,所以它在客戶端處理重定向的那一點)。

嘗試使用一個頁面,看起來有點像這樣:

<html> 
    <head> 
     <script type="text/javascript"> 
      function delayer(){ 
       window.location = "<?php echo $_GET['link']; ?>" 
      } 
     </script> 
    </head> 
    <body onLoad="setTimeout('delayer()', 5000)"> 
     Some info about the redirect! 
    </body> 
</html> 

這裏有三個主要部分組成:

1)JavaScript的:函數delayer() 5秒鐘後調用。

2)PHP:將GET參數link插入到JavaScript函數中。

3)HTML:這是您可以在標準HTML中插入免責聲明的地方,代碼中標有「關於重定向的一些信息!」。

0

您需要通過JavaScript來獲得免責聲明。

<html> 
<head> 
    <title>Redirect</title> 
<script type="text/javascript"> 
    function redirect(){ 
     window.location = "<?php echo $link; ?>"; 
    } 
</script> 
</head> 
<body onload="setTimeout(redirect(), 5000);"> 
    <B>DISCLAIMER HERE</B> 
</body> 
</html> 
3
<?php 
    echo "disclaimer here"; 
?> 
    <script type="text/javascript"> 
     setTimeout(function() { location.href = '<?php echo $_GET["link"]; ?>'; }, 3000); 
    </script>'; 
+0

Upvote。這應該是正確的答案。 – SubRed

+0

爲什麼<?php回聲免責聲明?>而不是像剛纔那樣有免責聲明

0

前面已經通過用戶名待定說你不能耽誤在服務器端重定向。

替代JavaScript的解決方案將是本地的HTML

<!doctype html> 
<html> 
    <head> 
     <meta http-equiv="refresh" content="15; url=<?php echo $redirectTarget; ?>"> 
    </head> 
    <body> 
     Your disclaimer 
    </body> 
<html> 

15指示秒的時間等待重定向之前完成。