循环$ _GET结果

13 html php sql

如果我有这样的事情:

?FormSub=Submit&qty=1&partno=ipod&notes=apple&unitprice=102.99&rowid=1&qty=2&partno=Ear+Buds&notes=Headphones&unitprice=45.99&rowid=2
Run Code Online (Sandbox Code Playgroud)

是否可以循环访问GET以将结果返回到HTML表中并添加到SQL表中?

或者我需要将rowid添加到每个$_GET(即...)的结尾?qty1=1&partno1=ipod

谢谢你的期待.

Din*_*nah 44

你可以循环$_GET.它只是一个数组:

foreach ($_GET as $key => $value) { }
Run Code Online (Sandbox Code Playgroud)

当您进行SQL查询时,请记住清理所有输入.同样用于在页面上显示值.使用htmlentities消毒的HTML显示.假设您的数据库是MySQL,请使用mysql_real_escape_stringSQL.


Tig*_*ger 7

$ _GET是一个数组..所以你可以使用foreach迭代它

foreach($_GET as $query_string_variable => $value) {
   echo "$query_string_variable  = $value <Br />";
}
Run Code Online (Sandbox Code Playgroud)

你也可以做extract($_GET)所有这些变量..但我不会建议.

如果你想将它保存到db,你应该考虑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>";
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.


KM.*_*KM. 6

小心!有人可以轻易改变这一点并提交:

?FormSub=Submit&qty=1&partno=ipod&notes=apple&unitprice=0.99&rowid=1&qty=2&partno=Ear+Buds&notes=Headphones&unitprice=0.05&rowid=2
Run Code Online (Sandbox Code Playgroud)

注意: "unitprice"是102.99和45.99,但已经改为0.99和0.05,我猜他们现在以优惠的价格出售!

  • 确认一切.恶意并不是这种东西出错的唯一原因.错误的击键,使用GET字符串中的此数据为您的页面添加书签的人以及许多其他原因可能会使您无法按预期工作.用户,特别是非技术精明的用户,有一种奇怪的方式让事情发生,你从未想过会这样. (5认同)
  • 一些用户将学习通过编辑URL来导航您的应用程序(他们会发现它比使用菜单/屏幕更快),但如果您不进行防御性编码,这可能会导致问题 (2认同)