【问题标题】:Issue with $row['{$variable}']$row['{$variable}'] 的问题
【发布时间】:2013-01-28 14:58:43
【问题描述】:

我正在尝试创建一个多页调查,每次他们进入下一页时都会保存该调查。如果他们随后离开并回到起点,所有信息都会自动填充到字段中。

首先我选择所有之前保存的数据:

$survey = $_GET['survey'];
$query = "SELECT * FROM data WHERE id='{$survey}'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

然后我使用循环来获取页面上的所有问题,如果信息存在于 $row 数组中,则自动填充信息。

$query = "SELECT * FROM questions WHERE id in (1,2,3)";
$result = mysql_query($query);
    while ($items = mysql_fetch_array($result)){
        if($items['type'] == "text"){ 
        $value = $items['name']; ?>
        <p><?php echo $items['question']; ?> <input type="text" id="<?php echo $items['name']; ?>" name="<?php echo $items['name']; ?>" value="<?php echo $row['{$value}']; ?>" /></p>
        <?php }
    }

表格示例:

问题

id、类型、名称、问题

1,text,first_name,你的名字是什么?

2,text,last_name, 你姓什么?

数据

id,first_name,last_name

1,约翰,多伊

似乎一切正常,除了:

value="<?php echo $row['{$value}']; ?>"

提前致谢,

【问题讨论】:

  • 很好SQL injection hole。享受您的服务器 pwn3d。
  • 您忘记告诉我们问题所在。幸运的是,在这种情况下,它恰好可以被专家识别。你在 PHP 手册的哪一部分看到写了$row['{$value}'] 之类的东西?
  • 到不间断时间旅行:php.net/manual/en/language.types.array.php 数组注意事项 为什么 $foo[bar] 错误?始终在字符串文字数组索引周围使用引号。例如,$foo['bar'] 是正确的,而 $foo[bar] 不是。但为什么?在旧脚本中经常会遇到这种语法。
  • 致 Marc B ...如果没有提交和更新/插入,服务器将如何成为“pwn3d”?显然我还没有发布实际代码。 - 并且回复:之前的评论...只是继续阅读“不要引用常量或变量的键,因为这会阻止 PHP 解释它们。” :(
  • @JoeKimberger "SELECT * FROM data WHERE id='{$survey}'" 其中$survey 直接从$_GET 读取。如果 `$survey="1'; DROP TABLES;"; ?

标签: php mysql arrays


【解决方案1】:

去掉引号,它们使它成为字符串文字而不是变量。 (括号可能也不是必需的):

value="<?php echo $row[$value]; ?>"

【讨论】:

    【解决方案2】:

    应该是,不需要'

    value="<?php echo $row[$value]; ?>"
    

    【讨论】:

      【解决方案3】:

      您的问题在于,您使用的单引号不执行 PHP 变量或函数,而是按原样获取文本。如果使用双引号,则 {$var} 将被视为变量。但是,在这种情况下,您根本不需要引号。

      使用:

      <?php echo $row[$value]; ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-29
        • 1970-01-01
        • 1970-01-01
        • 2021-05-06
        • 2021-08-27
        • 1970-01-01
        • 2013-09-03
        • 1970-01-01
        相关资源
        最近更新 更多