这让我困惑了好几个小时了。以下是有问题的代码。它在我的本地服务器上工作得很好但是当迁移到实时服务器时,我看到的问题是生成并存储为int类型的随机数(与本地相同)根本不是随机的。所有条目都具有完全相同的编号(2147483647)。
我不知道为什么它在本地运行但不会在实时服务器上运行。这是PHP的确切版本。我已经研究了几个小时了,找不到东西。
我确信这是一个简单的疏忽,并想在这里张贴,你们中有一位才华横溢的开发者可以指出它吗?
if($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_POST['submit']))
{
date_default_timezone_set("America/New_York");
$first_name = ucwords(addslashes(strip_tags($_POST['firstName'])));
$last_name = ucwords(addslashes(strip_tags($_POST['lastName'])));
$age = addslashes(strip_tags($_POST['age']));
$location = addslashes(strip_tags($_POST['state']));
$description = addslashes(strip_tags($_POST['desc']));
$date_added = date("Y-m-d");
$aka = ucwords(addslashes(strip_tags($_POST['aka'])));
$offender_id = mt_rand(1, 99999999999);
//offense pertinent
$date_of_offense = addslashes(strip_tags($_POST['date_of_offense']));
$offense = addslashes(strip_tags($_POST['offense']));
$added_by = addslashes(strip_tags($_POST['added_by']));
if(empty($aka))
{
$aka='None Known';
}
if($first_name&&$last_name&&$age&&$location&&$description&&$date_of_offense&&$offense&&$added_by)
{
include('../includes/db_cred.php');
$sql = "INSERT INTO offenders VALUES ('', '0', '$offender_id', '$first_name', '$last_name', '$aka', '$age', '$location', '$description', 'na', 'na', 'na', '$added_by', '$date_added')";
答案 0 :(得分:0)
您正在进行以下PHP调用:
$offender_id = mt_rand(1, 99999999999);
但是,mt_rand()
似乎能够在您的服务器上接受的最大值是2 ^ 32 = 2147483647,这是您一直看到的值。
从PHP手册:
整数的大小取决于平台,尽管最大值大约为20亿(通常是32位签名)