-2

我有一些遗留代码要修改PHP5.4,脚本最初是用PHP4.0.

当我们尝试登录时出现问题。 HTTP_POST_VARS无法识别,这些postget变量需要更改为$_POST整个$_GET脚本,价值 30-40 个脚本文件。

有人可以分享有关如何将所有长变量更改为短变量的任何想法$_POST

我试图打开文件,但它已经打开register_long_arraysphp.ini,不知道还有什么要做的。

4

2 回答 2

3

register_long_arrays指令不再存在

该指令在 PHP 5.0.0 中可用。[...] 此功能自 PHP 5.3.0 起已弃用,自 PHP 5.4.0 起已删除。

任何体面的编辑器都应该提供“在文件中替换”菜单项(通常在“编辑”、“搜索”或类似位置下)。有了这个,它应该是一个 2 分钟的任务,因为HTTP_POST_VARS它是一个不会引起太多歧义的长名称。

您似乎正在使用 phpDesigner。您可以在他们的网站上找到屏幕截图(向下滚动到“高级搜索和替换”)。


编辑:您似乎对文本编辑器感到恐慌,因此另一种选择是自己创建缺少的变量:

$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_POST_FILES = &$_FILES;
$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_SESSION_VARS = &$_SESSION;
$HTTP_ENV_VARS = &$_ENV;
$HTTP_COOKIE_VARS = &$_COOKIE;

您可以将此代码放在您希望拥有的应用程序的主设置文件的顶部(否则,考虑到搜索和替换显然不是一个选项,您需要将这些东西放在一个新*.php文件中并神奇地加载它使用auto_prepend_file PHP 指令)。

请注意,我们&用于分配引用,因此配对变量保持同步(这对于$HTTP_SESSION_VARS实际工作特别重要)。

当然,$HTTP_...变量不是超全局变量。如果您并不真正了解代码,则可能会遇到细微的错误。

于 2013-11-07T15:20:17.723 回答
0
`$HTTP_GET_VARS = &$_GET;
$HTTP_POST_VARS = &$_POST;
$HTTP_POST_FILES = &$_FILES;
$HTTP_SERVER_VARS = &$_SERVER;
$HTTP_SESSION_VARS = &$_SESSION;
$HTTP_COOKIE_VARS = &$_COOKIE;`

在数据库有效功能启动之前将它们全部放在配置(设置)文件中,并且它适用于属于该文件夹的所有脚本。

于 2013-11-12T14:55:27.287 回答