3

我被要求修复几天前还不错的网站,但由于主机将 PHP 升级到 v.5.3,现在无法包含文件

对于每个包含,我现在都会收到两个警告,如下所示:

警告:include_once(file.php) [function.include-once]:无法打开流:第 2 行的 /home/content/anotherFile.inc.php 中没有这样的文件或目录

警告:include_once() [function.include]:无法在 /home/content/anotherFile.inc.php 中打开 'file.php' 以包含 (include_path='.:/usr/local/php5_3/lib/php') 2号线

我真的不想重写网站。有没有办法修复路径?它在共享主机上,我无法修改 php.ini

我快速搜索了一下,发现 PHP 5.3 出现了问题,而 5.3.1 则消失了…… Bug?

有哪些可能的解决方案?


更新:我认为问题出在代码上。它是几年前写的,$_GET 值被用作 $value。更改为 $_GET['value'] 似乎解决了一些问题。

4

1 回答 1

3

看来问题是由不推荐使用的 php.ini 设置引起的:register_globals = on

这将导致您的$GET变量被提取并像您在编辑中描述的那样全局可用。

在 php 5.3 中,此设置已弃用但尚未删除,因此在重构时,您可以再次将其重新打开,以便您的站点再次运行。但是,请注意,您确实需要删除此设置,因为它存在安全风险,并且已在 php 5.4 中完全删除。

于 2012-08-18T18:30:26.863 回答