0
這讓我困惑了好幾個小時。以下是有問題的代碼。它在我的本地服務器上工作良好,但是當遷移到活動服務器時,我看到的問題是以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')";
注意你的'mt_rand'調用中的'max'值遠高於可能的最大值,這恰好是'2147483647'。我還假設'$ offender_id'應該是唯一的,在這種情況下,我不建議爲這些生成隨機數。 – Marty
謝謝先生!這應該解決它,並感謝提示。 – jds
有趣的是,本地計算機上的'mt_rand'可以接受大於2^32的範圍,但服務器不會。 –