【问题标题】:Undefined Variable PHP_SELF未定义的变量 PHP_SELF
【发布时间】:2012-09-24 12:25:03
【问题描述】:

我在这里用php开发一个后端。

我遇到了这样的错误:

未定义变量:PHP_SELF

在我的 htdocs 目录上。

我正在使用 php 5.4.4 进行开发,如果你想看这里的源代码:

http://pastebin.com/xr2PxbNG

【问题讨论】:

  • 你真的在寻找 $_SERVER['PHP_SELF'] 吗?
  • 我在我的本地主机中构建它们。让我改变一下它们:)
  • @FirmView 我不建议这样做。
  • @FirmView:不,我们不再这样做了。虽然相关问题主要来自在全局范围内运行所有其他代码,但新手最好避开该功能。
  • 这里是register_global_variables :)

标签: php content-management-system


【解决方案1】:

不要使用任何建议的 PHP_SELF 版本。这是一场安全噩梦,让您的 PHP 面临多种可能的注入攻击。

你想达到什么目的?为发送给自身的表单生成 URL?为此使用action="" - 这是一种有效的方法,并且将始终使用 URL 来发送表单以进行加载。

如果您必须知道请求的脚本,请改用$_SERVER['SCRIPT_NAME']

【讨论】:

  • 我认为在 localhost 学习和探索时最好玩设置
【解决方案2】:

你正在使用$PHP_SELF它应该是

echo $_SERVER['PHP_SELF'] ;

或者

$PHP_SELF = &$_SERVER['PHP_SELF'];
echo $PHP_SELF ;

你也可以

define("PHP_SELF",$_SERVER['PHP_SELF']); 
echo PHP_SELF ;

【讨论】:

  • +1 @FirmView 这个是给你的var_dump($_SERVER['PHP_SELF'] == $_SERVER['REQUEST_URI']) // true
  • 没关系 更多参考更好:)
  • 为了清理变量内容并使其对注入攻击更具弹性,我在某处发现了这个:$PHP_SELF = htmlentities($_SERVER['PHP_SELF']);。在生产中使用它效果很好。
  • @DavidRamirez 你的方法是错误的,你的推理“它工作正常”是有缺陷的。一般而言,PHP_SELF 不包含任何会被htmlentities() 更改的字符,因此它很自然地适用于肯定的情况。但是你必须要对任何攻击有完美的保护——仅仅让它“对注入攻击更有弹性”是不够的,这些类型的攻击必须完全不可能!这样做是可能的,但它需要有关如何正确转义数据的知识——你的解决方案不是这样的。
【解决方案3】:

您是否尝试访问 $_SERVER['PHP_SELF'] ?

【讨论】:

    【解决方案4】:

    看起来某些 WordPress 发行版声明了 $PHP_SELF = $_SERVER['PHP_SELF'],原因我不能说,一定是某种遗留问题。

    【讨论】:

      【解决方案5】:

      我必须使用页面网址解决此错误... 前任。喜欢

      echo "<a href=\"$_PHP_SELF?page=$last\">Last 3 Records</a>";
      

      您必须删除 $_PHP_SELF 并使用页面 URL 插入.php .......

      【讨论】:

        【解决方案6】:

        我也一样, 注意:未定义变量_PHP_SELF 所以我只是将 $_PHP_SELF 替换为 $_SERVER[PHP_SELF] 现在我没有得到任何额外的 no

        【讨论】:

          【解决方案7】:

          作为安全措施,某些 shell 会删除 $_SERVER['PHP_SELF'] 的值。如果您遇到这种情况,您可能需要查看$_SERVER['argv'][0]

          【讨论】:

            【解决方案8】:

            我解决了启动变量:

            $PHP_SELF = NULL;
            $Path1 = realpath(substr($PHP_SELF, 1));
            $dbName = "$Path1\\BD.accdb";
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-06-11
              • 2021-02-27
              • 2015-06-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-12-07
              相关资源
              最近更新 更多