2014-11-02 54 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

相关问题