function addAds($n) {
for ($i=0;$i<=$n;$i++) {
while($row=mysql_fetch_array(mysql_query("SELECT * FROM users"))) {
$aut[]=$row['name'];
}
$author=$aut[rand(0,mysql_num_rows(mysql_query("SELECT * FROM users")))];
$name="pavadinimas".rand(0,3600);
$rnd=rand(0,1);
if($rnd==0) {
$type="siulo";
} else {
$type="iesko";
}
$text="tekstas".md5("tekstas".rand(0,8000));
$time=time()-rand(3600,86400);
$catid=rand(1,9);
switch ($catid) {
case 1:
$subid=rand(1,8);
break;
case 2:
$subid=rand(9,16);
break;
case 3:
$subid=rand(17,24);
break;
case 4:
$subid=rand(25,32);
break;
case 5:
$subid=rand(33,41);
break;
case 6:
$subid=rand(42,49);
break;
case 7:
$subid=rand(50,56);
break;
case 8:
$subid=rand(57,64);
break;
case 9:
$subid=rand(65,70);
break;
}
mysql_query("INSERT INTO advert(author,name,type,text,time,catid,subid) VALUES('$author','$name','$type','$text','$time','$catid','$subid')") or die(mysql_error());
}
echo "$n adverts successfully added.";
}
這個函數的問題是它永遠不會加載。正如我注意到的,我的while循環導致它。如果我評論它,一切都好。它必須從我的數據庫中獲得隨機用戶,並將其設置爲變量$ author。無限循環問題
**您有一個SQL注入漏洞**。 – SLaks 2010-05-30 22:18:06
@缺點,不,他們不。所有值都從數據庫中提取或在函數中生成。唯一看起來像是任何問題都可能是用戶表,但這仍然是一個延伸。 – 2010-05-30 22:24:46
@Brendan Long - 僅僅因爲價值來自數據庫並不意味着它很乾淨。在這個問題的範圍內,什麼是阻止'users'中的一行有'','','','','','',''的名稱);插入表sql_injection_attacks值(TIME());'? – 2010-05-30 22:31:05