Sho*_*box 0 php paypal while-loop paypal-ipn
我正在尝试通过PHP中的$ _POST获取一些信息,基本上我正在使用它:
$item_name1 = $_POST['item_name1'];
$item_name2 = $_POST['item_name2'];
$item_name3 = $_POST['item_name3'];
$item_name4 = $_POST['item_name4'];
Run Code Online (Sandbox Code Playgroud)
我想用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++;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码失败了,解释起来相当棘手,但是代码应该找到所有的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";
}
Run Code Online (Sandbox Code Playgroud)
如何插入$ _POST ['item_name1'],$ _POST ['item_name2']作为mysql插入的变量?
您的循环有效地覆盖$test每次迭代的变量:
$test = $_POST['item_name'. $i''];
Run Code Online (Sandbox Code Playgroud)
如果要将它们放在数组中,请更改为$test[].它还包含所提到的解析错误brian_d.
拥有num_cart_items与表单一起发送的变量听起来有点可怕.你是用JavaScript设置的吗?用户可以操纵它.你不应该依赖它.我相信你需要的是将表格作为:
<input type="text" name="item_name[]" />
Run Code Online (Sandbox Code Playgroud)
请注意名称末尾的方括号.这将在数组中创建一个数组$_POST:$_POST['item_name']将包含所有项的名称.
那么,你的数据库是如何构建的?我想你想在一个查询中插入它们:
INSERT INTO ORDERS VALUES (item_name_1, ...), (item_name_2, ...)
Run Code Online (Sandbox Code Playgroud)
如果是这样,你可以从数组中创建一个字符串:
$query = 'INSERT INTO ORDERS VALUES ';
foreach($_POST['item_name'] as $item_name){
$query .= '('.stripslashes($item_name). /*put other column values*/ '),';
}
$query = rtrim($query, ',');
Run Code Online (Sandbox Code Playgroud)
请注意,使用addslashes不足以保护您免受SQL注入.
| 归档时间: |
|
| 查看次数: |
1695 次 |
| 最近记录: |