如何包含带有$ _GET功能的页面& htaccess链接?

时间:2012-07-06 00:47:19

标签: php .htaccess

目前正在开发一个网站,我想知道如何使用$ _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,并且不记得上述事情是如何完成的。

可以在www.survivaloperations.net/dev/

找到我正在处理的内容的预览

2 个答案:

答案 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");
}