【问题标题】:PHP extracting without extract()没有 extract() 的 PHP 提取
【发布时间】:2012-01-24 17:31:19
【问题描述】:

我有类似的东西:

    if(isset($_POST['submit']))
    {
    $linktitle=strtolower(str_replace(" ","-",$title));

等等

$linktitle$title 实际上是来自$_POST 的变量——即$_POST['linktitle']$_POST['title']。 不知何故,即使(据我所见!)我没有在代码的这个阶段提取() $_POST,它仍然有效 - PHP 理解 $title 指的是$_POST['title']。谁能解释一下为什么会这样?

谢谢!

ps。抱歉,但我真的无法让这个内联代码引用格式化的东西工作......!

【问题讨论】:

    标签: php extract


    【解决方案1】:

    register_globals 在您的 PHP 实例中启用。请参阅here 了解更多信息。

    这是应该依赖的行为,因为它的使用现在已被弃用。您会发现您仍然可以使用$_POST['keyname']$keyname,这就是您应该在代码中引用的内容。

    【讨论】:

      【解决方案2】:

      您的 php.ini 文件必须启用 register_globals,以便将 GPC 变量添加到符号表中。这就是您看到这种行为的原因。看看这种功能的安全隐患here

      【讨论】:

        【解决方案3】:

        您在您的网络服务器 (php.ini) 中激活了register globals,因此 PHP 将 unknoe 变量替换为相应的 GET 或 POST 值。此选项已弃用且危险!如果可以,请禁用它!

        【讨论】:

          猜你喜欢
          • 2017-04-02
          • 2020-12-11
          • 2013-07-25
          • 2020-04-09
          • 1970-01-01
          • 2020-08-07
          • 2010-11-12
          • 1970-01-01
          • 2016-01-23
          相关资源
          最近更新 更多