破碎的随机PHP

时间:2011-04-19 19:23:38

标签: php random seed

我一直在使用mt_rand(10,100)获得10到100之间的随机数,但每次都给我74个。

继续使用

$success=mt_rand(10,100);

有什么想法吗?我需要种子吗?提前谢谢。

--- --- EDIT

我刚试过这个

    srand(microtime());
    $success=rand(10,100);

每次都给出相同的答案,47。

--- --- EDIT

这就是整件事

srand(microtime());
$success=rand(10,100);
echo $success;
if ($success == 100) {
    $displayline="You succeeded";
    session_register("displayline");
    header("location:userhome.php");
}

4 个答案:

答案 0 :(得分:1)

您运行的是哪个版本的PHP?在4.2.0中,mt_rand()被更改为自动播种。

您可以使用mt_srand($ seed)播种它,提供种子值。我使用microtime()函数的输出。

编辑:由于您使用的是5.2,请检查您的代码以查看是否正在调用mt_srand()并注释掉所有此类调用。

答案 1 :(得分:0)

这很奇怪。如果只做mt_rand()你会得到什么? mt_getrandmax()的价值是什么?

尝试使用mt_srand()

播种

答案 2 :(得分:0)

它自己播种。

http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/

猜猜你应该检查你的PHP版本

答案 3 :(得分:0)

删除所有种子功能,不要重新添加。然后重新启动服务器。

另外,我发现了this PHP bug,它出现在Windows系统上,有一些版本的php.ini文件。