2014-11-02 64 views
0

所以我想在網頁中增加一點樂趣或「隨機性」,點擊時有一個標籤,將用戶重定向到一個隨機的URL。但是,如果用戶只是重定向到那個網址,我想將它放在不重複該網址的位置。有沒有辦法讓這個隨機的URL重定向腳本不會多次重複同一個URL?

因此,讓我們說用戶1點擊「隨機」,他被帶到http://google.com/但是,然後,他回到我的頁面,並再次點擊「隨機」,我希望它在其他地方,並且不要回到http:/google.com/如果他第三次回到http://google.com/就好了,但如果他們剛剛訪問了該URL,我不想讓它重複相同的URL。

這是可以用PHP描述它的方式嗎?或者是我認爲它更復雜?

這是我目前正在處理的事情:(我根本不是真正的PHP精明,這就是爲什麼我問)。

<?php 
$urls = array(
"www.google.com", 
"www.youtube.com", 
"www.facebook.com" 
); 
$url = $urls[array_rand($urls)]; 
header("Location: http://$url"); 
?> 

回答

1

您可以通過使用會話做到這一點:

<?php 
    session_start(); 

    function checkUrl($url, $urls){ 
     if(count($_SESSION['visited']) == count($urls)){ 
       $_SESSION['visited'] = Array(); 
     } 
     if(in_array($url, $_SESSION['visited'])){ 
      $url = $urls[array_rand($urls)]; 
      checkUrl($url, $urls); 
     } 
     else{ 
      $_SESSION['visited'][] = $url; 
      header("Location: http://$url"); 
     } 
    } 
    $urls = array(
     "www.google.com", 
     "www.youtube.com", 
     "www.facebook.com" 
    ); 
    $url = $urls[array_rand($urls)]; 
    checkUrl($url, $urls); 
?> 

編輯:

實現時,所有的都不會忽略訪問

+0

我上傳這個到我的服務器復位,而且似乎在運行大約3次後,腳本只是在白頁結束並且不加載任何地方。 – travis 2014-11-02 08:25:16

+0

看我的編輯。您需要重置陣列! – 2014-11-02 08:36:21

+0

我似乎仍然在獲得白頁。不知道是否只是我。你可以去看看嗎? http://travisx.com/1.php – travis 2014-11-02 08:43:25

相關問題