PHP foreach循环具有多个索引变量

时间:2013-05-31 10:57:33

标签: php mysql loops foreach

任何人都可以看到以下代码有什么问题吗?

我正在尝试从表单中对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;
        }
    }
}

1 个答案:

答案 0 :(得分:1)

这种方式并不是很好。如果文本字段为空或有内容,则会发布文本字段,而复选框仅在选中时发布。这将导致数组的长度不同,array_combine将失败。

执行print_r($ _ POST),您将看到发布了什么输入。

这甚至没有考虑到这将造成的安全噩梦。