我使用以下代码在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.知道为什么吗?
答案 0 :(得分:1)
服务器端PHP脚本不会受到用于查看页面的浏览器的影响,因此这看起来像渲染问题 - 检查包含的代码是否生成有效的HTML,以及您没有{{ 1}}标记包含在其他<html>
标记中。
您可能想重新考虑包含页面内容的方式 - 通过GET变量执行此操作可能是不安全的:首先,它不会将文件限制为网站文档根目录中的文件。
至少我建议对输入文件进行一些健全性检查(即它们是否在webroot中?),但更现代的方法是使用.htaccess重写将所有请求发送到<html>
,然后您可以根据请求选择要包含的文件(有关详细信息,请查看this post)。
答案 1 :(得分:0)
您放在上面的服务器端脚本应该返回与所有浏览器相同的结果。尝试使用$_SERVER["REQUEST_URI"]
进行调试,看看是否得到相同的结果。
此外,出于安全原因,我建议不要使用此类包含。