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


PHP foreach loop with multiple index variables

有人能看出下面的代码有什么问题吗?

我正试图从一个表单上对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),您将看到输出的输入。

这还没有考虑到这会带来的安全问题。