我正在尝试在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>";
所有我预览的是标题,没有别的
任何人都可以帮助我,我不知道该怎么做,我尝试了一些没有帮助的事情: - (
答案 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';
答案 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;
?>