gpt4 book ai didi

php - 在 While PHP 问题中使用 $_POST

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:55 25 4
gpt4 key购买 nike

我正在尝试通过 PHP 中的 $_POST 获取一些信息,基本上目前我正在使用这个:

$item_name1 = $_POST['item_name1']; 
$item_name2 = $_POST['item_name2'];
$item_name3 = $_POST['item_name3'];
$item_name4 = $_POST['item_name4'];

我想用 mysql 在表字段中插入每个项目名称,所以我尝试使用 while php 循环进行试验,这样我就没有很多 $item_name 变量:

$number_of_items = $_POST['num_cart_items']; 

$i=1;
while($i<=$number_of_items)
{
$test = $_POST['item_name'. $i''];
$i++;
}

上面的代码失败了,解释起来很棘手,但是代码应该找到所有的 item_name $_POST 并将其作为 mysql 插入的变量。

$_POST['num_cart_items'] 是商品总数。

该代码用于正在进行的购物车的 PayPal IPN 监听器。

感谢帮助。

编辑:

我在刚刚发现的文档中有这个:

$req = 'cmd=_notify-validate';
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$req .= "&$key=$value";
}

如何插入 $_POST['item_name1'], $_POST['item_name2'] 作为 mysql 插入的变量?

最佳答案

您的循环在每次迭代中有效地覆盖了 $test 变量:

$test = $_POST['item_name'. $i''];

如果要将它们放在一个数组中,请更改为$test[]。它还包含 brian_d 提到的解析错误。

用表单发送变量 num_cart_items 听起来有点可怕。你是用JavaScript设置的吗?用户可以操纵它。你不应该依赖它。我相信您需要的是将表单字段设为:

<input type="text" name="item_name[]" />

请注意名称末尾的方括号。这将在 $_POST 数组中创建一个数组:$_POST['item_name'] 将包含所有项目的名称。

那么,您的数据库是如何构建的?我想您想将它们插入一个查询中:

INSERT INTO ORDERS VALUES (item_name_1, ...), (item_name_2, ...)

如果是这样,您可以从数组中创建一个字符串:

$query = 'INSERT INTO ORDERS VALUES ';
foreach($_POST['item_name'] as $item_name){
$query .= '('.stripslashes($item_name). /*put other column values*/ '),';
}
$query = rtrim($query, ',');

请注意,使用 addslashes 不足以保护您免受 SQL 注入(inject)攻击。

关于php - 在 While PHP 问题中使用 $_POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com