我被要求修复一个几天前很好的网站,由于主机将PHP升级到v.5.3,现在无法包含文件
对于每个包含,我现在得到两个警告,如下:
警告:include_once(file.php)[function.include-once]:失败 open stream:没有这样的文件或目录 第2行/home/content/anotherFile.inc.php
警告:include_once()[function.include]:打开'file.php'失败 包含(include_path ='。:/ usr / local / php5_3 / lib / php')in 第2行/home/content/anotherFile.inc.php
我真的不想重写网站。有办法修复路径吗?它在共享主机上,我无法修改php.ini
我快速搜索了,这似乎是PHP 5.3的一个问题,它随着5.3.1 ... Bug?
而消失有哪些可能的解决方案?
更新:我认为问题在于代码。它写于几年前,$ _GET值被用作$ value。改为$ _GET ['value']似乎解决了一些问题。
答案 0 :(得分:3)
问题似乎是由deprecated php.ini setting:register_globals = on
引起的。
这会导致您的$GET
变量被解压缩并且像您在编辑中所描述的那样全局可用。
在php 5.3中,此设置已弃用但尚未删除,因此在重构时,您可以重新启用它,以便您的网站再次运行。 然而,请注意您确实需要摆脱此设置,因为它存在安全风险,并且已在php 5.4中完全删除