如何使用include加载页面

时间:2013-10-11 08:07:35

标签: php

我正在尝试在php中编写一个页面来保存php文件的代码,在该文件中我必须通过链接加载不同的页面

这是我的页面选择功能:

$page_to_see=$_GET['PageToSee'];
if (!isset($page_to_see))  
{
    $page_to_see="include 'pages/home.html';";
}
else
{
    $page_to_see="include 'pages/".$page_to_see.".html';";
} 

$ _GET从链接中获取值(www.mysite.com/myfile.php?PageToSee=home)

在写入文件时代码是:

$content="<table align='center'>";
$content.="<tr align='center'>";
$content.="<td align='center'>";
$content.="<?PHP include 'pages/header.php'; ?>";
$content.="</td></tr>";
$content.="<tr><td align='center'>";
$content.="<?PHP echo $page_to_see; ?>";
$content.="</td>";
$content.="</tr>";
$content.="</table>";

所有我预览的是标题,没有别的

任何人都可以帮助我,我不知道该怎么做,我尝试了一些没有帮助的事情: - (

3 个答案:

答案 0 :(得分:0)

首先,在PHP文件中,您必须定义一个字符串数组,用于指定实际可以包含的页面,以避免包含注入。

然后,您必须测试$_GET变量以了解它是否与数组中的任何条目相对应。

myFile.php:

$pages = array('home', 'page2', 'page3');
if(in_array($_GET['PageToSee'], $pages)) {
    include($_GET['PageToSee'].'php'); // Add correct extension of your file
}

另外,对于你的html,你必须输出一个正确的锚:

echo '<a href="./myFile.php?PageToSee=home">Some Label</a>';

答案 1 :(得分:0)

这句话很奇怪:

$content.="<?PHP echo $page_to_see; ?>";

也许它应该很简单:

$content.= $page_to_see;

您不需要引号:

$page_to_see="include 'pages/".$page_to_see.".html';";

尝试将其更改为:

$page_to_see= include 'pages/".$page_to_see.".html';

See the example #5 in the php docs.

答案 2 :(得分:0)

您可以尝试此操作但请确保$ page_to_see为absolute url

<?php
      $content="<table align='center'>";
      $content.="<tr align='center'>";
      $content.="<td align='center'>";
      $content.= file_get_contents('http://www.mysite.com/pages/header.php');
      $content.="</td></tr>";
      $content.="<tr><td align='center'>";
      $content.= file_get_contents($page_to_see);
      $content.="</td>";
      $content.="</tr>";
      $content.="</table>";
     echo $content;
 ?>