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