PHP包括不使用IE 7,8和9

时间:2012-03-01 10:05:52

标签: php internet-explorer-8 internet-explorer-7 include internet-explorer-9

我使用以下代码在index.php文件(模板)中包含页面内容。

if(isset($_GET['page']))
{
include($_GET['page'].'.php');
}

if(isset($_GET['special']))
{
include($_GET['special'].'.php3');
}

网址可能如下所示:http://www.example.com/?page= {PageToShow}

这适用于Chrome,Firefox和Safari,但内容未在IE 7,8& 9.知道为什么吗?

2 个答案:

答案 0 :(得分:1)

服务器端PHP脚本不会受到用于查看页面的浏览器的影响,因此这看起来像渲染问题 - 检查包含的代码是否生成有效的HTML,以及您没有{{ 1}}标记包含在其他<html>标记中。

您可能想重新考虑包含页面内容的方式 - 通过GET变量执行此操作可能是不安全的:首先,它不会将文件限制为网站文档根目录中的文件。

至少我建议对输入文件进行一些健全性检查(即它们是否在webroot中?),但更现代的方法是使用.htaccess重写将所有请求发送到<html> ,然后您可以根据请求选择要包含的文件(有关详细信息,请查看this post)。

答案 1 :(得分:0)

您放在上面的服务器端脚本应该返回与所有浏览器相同的结果。尝试使用$_SERVER["REQUEST_URI"]进行调试,看看是否得到相同的结果。

此外,出于安全原因,我建议不要使用此类包含。