[英]loop through $_GET results
如果我有这样的事情:
?FormSub=Submit&qty=1&partno=ipod¬es=apple&unitprice=102.99&rowid=1&qty=2&partno=Ear+Buds¬es=Headphones&unitprice=45.99&rowid=2
是否可以遍历GET将结果返回到HTML表并添加到SQL表中?
还是我需要在每个$_GET
末尾添加行标识符(即, qty
1
=1&partno
1
=ipod
...)?
感谢您的光临。
您可以循环$_GET
。 它只是一个数组:
foreach ($_GET as $key => $value) { }
在进行SQL查询时,请记住清理所有输入。 同样用于在页面上显示值。 使用htmlentities
清理HTML显示。 假设您的数据库是MySQL,请对SQL使用mysql_real_escape_string
。
$ _GET是一个数组..所以您可以使用foreach对其进行迭代
foreach($_GET as $query_string_variable => $value) {
echo "$query_string_variable = $value <Br />";
}
您也可以执行extract($_GET)
以使所有变量都变..但我不建议这样做。
如果要将其保存到数据库,则应考虑mysql_real_escape_string($value)
。
要打印HTML表格..您想要这样的东西吗?
$count = count($_GET);
if($count > 0) {
echo "<table>";
foreach($_GET as $query_string_variable => $value) {
echo "<tr><td>$query_string_variable</td><td>$value</td></tr>"
}
echo "</table>";
}
希望这可以帮助。
小心! 有人可以轻松更改此内容并提交:
?FormSub=Submit&qty=1&partno=ipod¬es=apple&unitprice=0.99&rowid=1&qty=2&partno=Ear+Buds¬es=Headphones&unitprice=0.05&rowid=2
注意: “单价”分别为102.99和45.99,但已更改为0.99和0.05,我想它们现在已经以很高的价格出售!
请参阅常见问题解答。 如何在HTML <form>
创建数组?
因此,您的要求是:
?FormSub=Submit&qty[]=1&partno[]=ipod¬es[]=apple&unitprice[]=102.99&rowid[]=1&qty[]=2&partno[]=Ear+Buds¬es[]=Headphones&unitprice[]=45.99&rowid[]=2
将创建以下形式的数组:
array(
'FormSub' => 'Submit',
'qty' => array(
0 => '1',
1 => '2'
),
'partno' => array(
0 => 'ipod',
1 => 'Ear Buds'
),
'notes' => array(
0 => 'apple',
1 => 'Headphones'
),
'unitprice' => array(
0 => '102.99',
1 => '45.99'
),
'rowid' => array(
0 => '1',
1 => '2'
)
)
但我希望您不接受未经验证的值,甚至不将其用于实际订单。
另外, GET仅用于数据检索 :
特别是,已经建立了约定,即GET和HEAD方法不应具有除检索之外的其他任何操作。
对于具有副作用(服务器上的数据更改)的请求,应使用POST。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.