在您指定参数p
的网址中,但在您的files.class.php
中,您实际测试的是$_GET['page']
。因此,要么修改URL使用page
作为参数或代码更改为:
// in files.class.php instead of if(!isset($_GET['page']))
if(!isset($_GET['p'])){
// your code here...
} else {
// ...
}
在你原来的代码,如$_GET['page']
也不会存在,它总是显示的索引页。
看起来很奇怪,我的另一件事是以下(但也许它是你是如何设置它):
if(file_exists($_GET['page'].'.txt')){
// and lets include that then:
ob_start();
include("contents/". $_GET['page'] . '.php');
$content = ob_get_contents();
ob_end_clean();
}
您首先检查是否文本文件如about.txt
存在但包括一个PHP文件contents/about.php
。这是打算?如果文本文件存在,PHP总是存在吗?
UPDATE:
另外,还要确保你正确地检查你从$_GET['page']
获取或无论你到底把它的值。
例如此调用http://designed.sytes.net/index.php?page=../index
似乎要杀死你的服务器(抱歉,这是无意:()
更新2:
为了提供“一些”安全你可以检查是否$_GET['page']
是一个预定义值,而不是检查使用此名称的文件是否存在,例如:
$valid_pages = array('home', 'about', 'services', 'contact');
if(isset($_GET['page']) && in_array($_GET['page'], $valid_pages) {
// include page here
}
else {
// redirect to home page
}
这可以确保$_GET['page']
就像../index
相对pathes的形式不是。如果它不是$valid_pages
中的那些值中的一个,那么您将重定向到主页。
看起来你做了什么。 – 2010-04-01 01:29:03
@John Boker:啊再次工作:) – 2010-04-01 01:38:53
呵呵所以,你是感谢抱歉,没有我没有更新与修复phps使他们都.php而不是.txt,并感谢你,现在使完美的感觉为什么它没有加载,也许你可以帮我一个z-index级别没有被应用,我会将它添加到以上内容 – Zeenjayli 2010-04-01 01:42:12