找到与其他变量同名的$ _POST变量

时间:2013-06-27 06:45:48

标签: php mysql post mysqli

我在$_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']是问题的代码行。什么是解决这个问题的最佳方法?

3 个答案:

答案 0 :(得分:1)

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

另外请注意,您使用的是高度不安全的代码。谷歌sql注入

答案 1 :(得分:1)

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

解析

<强>被修改

DEMO

答案 2 :(得分:0)

您可以使用array_keys()将所有密钥和数组作为$_POST

$keys = array_keys( $_POST );

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

然后你就可以使用这个$keys数组来输出。