有人能看出下面的代码有什么问题吗?
我正试图从一个表单上对2个数组执行foreach循环。
形式代码:
<td>
<input type="checkbox" name="PR[]" value="DP01">Version 1 Daypack - $55.00<br/>
<input type="checkbox" name="PR[]" value="DP02">Version 2 Daypack - $30.00<br/>
</td>
<td>
<input type="text" name="QTY[]" size = "2"/><br/>
<input type="text" name="QTY[]" size="2"/><br/>
</td>
PHP代码:
if(!empty($_POST['PR']))
{
foreach (array_combine($_POST['PR'], $_POST['QTY']) as $PRS => $QTYS)
{
$sql="INSERT INTO ORDER_TBL (TRANSACTION_ID, CUSTOMER_ID, PRODUCT_ID, QUANTITY)
VALUES ('','$_SESSION[user]','$PRS,'$QTYS)";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
exit;
}
}
}
这种方法一点也不好。无论文本字段是空的还是有内容,都将被发布,而复选框只有在被选中时才会被发布。这将导致数组的长度不同,并且array_combine将失败。
执行print_r($_POST),您将看到输出的输入。
这还没有考虑到这会带来的安全问题。