2013-08-06 35 views
2

我有这个网站,请参阅,它现在每5分钟生成一个数字,并每隔5秒生成一个较小的数字,并将该数字添加到第一个以给出错觉数量在波动。这可能有助于看到网站。网站上的服务器端随机数生成器

http://spinningcat.us/

它可能看起来很可笑,它基本上是一个内部笑话。

无论如何,问题是,据我所知,给出的数字是客户端,并且因人而异。是否有可能使其成为服务器端?这样每个同时进入网页的人都会看到相同的号码?

谢谢

回答

0

您可以使用Ajax。 Ajax向服务器发送请求,该服务器将处理该请求并返回响应而不重新加载页面。一个好的教程here.

编辑:试试这个:

<script> 
function loadXMLDoc(){ 
var xmlhttp; 
if (window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
} 
else{// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText; 
    } 
} 
xmlhttp.open("GET", "randomnumber.php"); 
xmlhttp.send(); 
} 
setInterval(function(){loaxXMLDoc()},1000); 
</script> 

而在PHP:

echo $randomNumber 

(我不是一个PHP的人,所以我不知道如何生成随机数字)。

+0

哦,荣誉口袋妖怪摊牌。 (举手击掌) – 2013-08-06 01:22:33

2

您需要种子随机数发生器,以便php rand()函数将返回相同的数字给所有访客,直到下一个随机数r被生成。

从服务器使用当前时间time()

$fiveMinSeed = floor(time()/300); 
srand($fiveMinSeed); 
$firstNumber = rand(); 


$fiveSecondSeed = floor(time()/5); 
srand($fiveSecondSeed); 
$secondNumber = rand(); 

echo $firstNumber + $secondNumber; 

这会产生两个不同的种子一个基于将每5分钟更换一次,另一种是每5秒改变。然后使用这些值,您将得到一个“随机”数字,在种子改变之前每个人都是一样的。

您可以使用AJAX请求获取号码并显示在您的页面上。

http://php.net/manual/en/function.srand.php

注:

如果使用mt_rand(),然后设置种子与mt_srand()