0

目前正在开发一个网站,并且想知道如何使用 $_Get 函数将页面包含到主索引中(仅更改某些区域的内容而不是整个页面)。

文件可能类似于 index.php(包含内容页面)、news.php(索引上的默认页面显示)、members.php、about.php、guides.php、downloads.php、sonsons.php 等。

我相信(如果我没记错的话)与 $_Get 方法的链接通常看起来像这样 index.php?pid=about

我还想了解如何将链接(通过 htaccess?)更改为如下链接: www.mywebsite.com/about/ 而不是 mywebsite.com/index.php?pid=about

自从我做任何 PHP 以来已经有一段时间了,并且不记得上面的事情是如何完成的。

我的工作预览可以在www.survivaloperations.net/dev/上找到

4

2 回答 2

1

您会将所有文件放在 pages 文件夹中,只是常规的 .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;
 }

与一堆 else if 语句相比,该开关需要更少的代码,并允许在输入无效 pid 时显示默认的“404”类型页面。它还可以保护用户免于访问他们不应该访问的任何内容...例如“../db.php”或其他内容(不确定是否可以访问父目录,但仍然可以)。

于 2012-07-06T00:53:11.607 回答
-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");
}
于 2012-07-06T00:55:55.857 回答