在PHP 5.3中重新引入$ HTTP_POST_VARS

usr*_*ΛΩΝ 12 php

我需要在共享托管环境中运行遗留 PHP应用程序.我已经向我的客户承诺我会支持该遗留应用程序一段时间,但我发现它不起作用,因为它广泛使用已弃用的$HTTP_POST_VARS.

降级PHP不是一种选择.修补应用程序可能是不可行的,因为PHP文件是从Windows可执行文件生成的(我不是在开玩笑!),每次从桌面重新生成站点时,我们都会丢失修改.

我问是否有办法告诉PHP重新引入$HTTP_POST_VARS主机上的所有网站或仅针对特定的虚拟主机.任何其他选项/建议表示赞赏

Bab*_*aba 20

你可以这样做

config.php文件

$HTTP_POST_VARS = &$_POST;
$HTTP_GET_VARS = &$_GET;
$HTTP_COOKIE_VARS = &$_COOKIE;
Run Code Online (Sandbox Code Playgroud)

的.htaccess

php_value auto_prepend_file /path/to/config.php
Run Code Online (Sandbox Code Playgroud)

PHP doc auto_prepend_file字符串

指定在主文件之前自动解析的文件的名称.包含该文件就像使用require函数调用它一样,因此使用了include_path.

特殊值none禁用自动前置.

编辑:为了更加彻底,这些是其他超级全局,也可能是别名:

$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_POST_FILES = &$_FILES;
$HTTP_SESSION_VARS = &$_SESSION;
$HTTP_ENV_VARS = &$_ENV;
Run Code Online (Sandbox Code Playgroud)

  • 这就是我在寻找那个runkit的东西. (3认同)