0

我有一个表单正在传递,$_POST其中每个字段的名称与数据库中的数据相对应

$_POST['test']; (has a value of 1)
$_POST['prod']; (has a value of 2)

两者都是数据库testprod的唯一名称。有没有办法可以动态获取$_POST变量?例如(一些不起作用的代码)

$getServerIDs = $link->query("SELECT * FROM servers");
while($row = $getServerIDs->fetch_assoc()){
    $serverName = $row['name'];
    $newDisplayID = $_POST['$sName'];
    $updateDisplayID = "UPDATE servers SET displayID = $newDisplayID WHERE name = $servername";
    $runQuery = $link->query($updateDisplayID);

$_POST['$sName']是问题所在的代码行。解决此问题的最佳方法是什么?

4

3 回答 3

1

不要使用引号或使用双引号。

还要小心你正在使用高度不安全的代码。谷歌sql注入

于 2013-06-27T06:49:34.800 回答
1

问题在于$newDisplayID = $_POST['$sName'];您使用单引号的行,当您将变量放在单引号中时,它不会被 php 使用$_POST[$sName];或解析$_POST["$sName"];

已编辑

演示

于 2013-06-27T06:55:41.933 回答
0

您可以使用array_keys()来获取内部的所有键并将数组设置为$_POST.

$keys = array_keys( $_POST );

但请注意,您的用户可以在他们的提交中添加任何密钥。所以无论如何你都应该过滤和清理这个输入!

接下来,您可以使用此$keys数组进行输出。

于 2013-06-27T06:48:54.293 回答