目前正在开发一个网站,我想知道如何使用$ _Get函数将页面包含到主索引中(仅更改某个区域内容而不是整个页面)。
文件类似于index.php(其中包含内容页面),news.php(索引上的默认页面显示),members.php,about.php,guides.php,downloads.php,sponsors.php等
我相信(如果我没记错的话)与$ _Get方法的链接通常看起来像这个index.php?pid = about
我还想了解如何更改链接(通过htaccess?)链接如下:www.mywebsite.com/about/而不是mywebsite.com/index.php?pid=about
我已经有一段时间了,因为我已经完成了任何PHP,并且不记得上述事情是如何完成的。
找到我正在处理的内容的预览答案 0 :(得分:1)
您可以将所有文件放在一个页面文件夹中,只需要一些repeular .php文件。
你的index.php看起来像这样:
include('pages/'. $_GET['pid']. '.php');
所以你的文件看起来像是:
pages/home.php
pages/contact.php
你会去:
index.php?pid=home
index.php?pid=contact
分别
您还希望控制允许哪些$ _GET值。我推荐使用php开关:
switch($_GET['pid']) {
case "home": include("home.php"); break;
case "contact": include("contact.php"); break;
case "thing": include("thing.php"); break;
default: include("404.php"); break;
}
交换机所需的代码少于一堆其他if语句,并允许在输入无效的pid时显示默认的“404”类型页面。它还可以防止用户访问他们不应该访问的任何内容......比如“../db.php”或其他东西(不确定父目录是否可以访问,但仍然可以)。
答案 1 :(得分:-1)
在使用$ _GET之前,您必须清除标签以确保安全。
$pid = strip_tags($_GET['pid']);
include("$path/" . $pid . ".php");
但是...我更喜欢其他安全代码。
$pid = strip_tags($_GET['pid']);
switch($pid) {
'sub01' : include("$path/01.php"); break;
'sub02' : include("$path/02.php"); break;
default : include("$path/main.php");
}