PHP包含if文件存在的代码以及如果不存在则该怎么做

时间:2014-08-20 00:44:32

标签: php file-io include require

很久以前,这段代码过去常常起作用,但现在似乎还在继续阻止它正常运行。我希望有人能告诉我发生了什么事。我担心升级到PHP已经杀死了这段代码。还是有吗?

我使用此代码(在下面发布)来检查并查看是否存在html文件,如果它存在,则将使用它。如果没有,它将使用文件index2.html。

<?php if ((file_exists("$id.html")) == true) { require ("$id.html"); } else { require ("index2.html"); } ?>

我在我的主页index.php上使用此代码。但是由于一些奇怪的原因,当我输入一个链接:例如:index.php?id = exampleurlhere时,代码不会检查文件是否存在并自动使用index2.html文件,尽管我的代码如果文件存在(它确实存在),则需要使用它。为什么现在忽略了我的命令?

多年来一直在使用这段代码,直到最近才出现任何问题。有什么建议可以解决吗?

1 个答案:

答案 0 :(得分:1)

我认为问题出在&#34; register_globals&#34;设置。这曾经在PHP的(非常)旧版本中默认启用,但在较新版本中已被删除,因为这会在旧PHP中引发大量可变注入攻击。

您的$ ID直接来自网址中的值。现在它不再自动注册,您可以添加一行&#34; $ id = $ _ GET [&#39; id&#39;];&#34;就在那条线之上,让它再次发挥作用。

这只是一个快速修复。我建议你重写程序,以免用户使用URL非法访问文件。