什么是正在加载只是很好的网址是deign.sytes.net除了链接当我点击我们或服务或联系他们看起来像加载但body.tpl中的内容不会从默认更改。也许你可以帮我解决这个问题,为什么链接没有变化。你想要的是唯一的php文件
我已经制作了用于查看perps的phps文件但是如果你坚持它我将发布require代码。
designed.sytes.net/index.phps designed.sytes.net/classes/file.class.phps
答案 0 :(得分:1)
在您为参数p
命名的网址中,但在files.class.php
中,您实际为$_GET['page']
进行了测试。因此,要么更改网址以使用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是否总是存在?
<强>更新强>
还要确保正确检查从$_GET['page']
获得的值,或者最后调用它。
例如。此次通话http://designed.sytes.net/index.php?page=../index
似乎会杀死您的服务器(抱歉,这是无意中:()
更新2 :
为了提供“某种”安全性,您可以检查$_GET['page']
是否是预定义值之一,而不是检查是否存在具有此名称的文件。 E.g:
$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
这样的相对形式。如果它不是$valid_pages
中的其中一个值,则会重定向到主页。
答案 1 :(得分:0)
我在您的http://designed.sytes.net/classes/file.class.phps文件中看到您有$_GET['page']
,但在查询字符串中您有p=
不起作用的一个例子是:
http://designed.sytes.net/index.php?p=about
然后改为:
http://designed.sytes.net/index.php?page=about
似乎表现出不同的东西。