<?php
$p = $_GET['page'];
$page = $p.".php";
if(file_exists($page))
include($page);
elseif($p=="")
include("home.php");
else
include("404.php");
?>
这段代码给我一个$ page变量的Undefined Index错误,我试过了 这样做......
<?php
$p = $_GET['page'];
if(isset($page)){$page = $p.".php";}
if(file_exists($page))
include($page);
elseif($p=="")
include("home.php");
else
include("404.php");
?>
但这没有做任何事。我仍然是PHP的新手,我不知道我需要做些什么来解决这个问题。 有什么建议吗?
编辑:对于每个想要网址的人:http://memphislinuxboy.tk/ 另外,对于那些想要了解安全性的人来说,包含的文件必须是.PHP
答案 0 :(得分:3)
我认为$_GET['page'];
未设置,请检查进入的网址,确保它在某个时刻包含“page =”。
您可以使用
解决此问题if(isset($_GET['page']) {
//your code
}
非主题:
if(file_exists($page))
include($page);
您正在尝试包含客户端指定的文件。如果处理不当,这可能是一个严重的安全漏洞。最好检查一下已知(好)文件的列表。
答案 1 :(得分:0)
行$p = $_GET['page'];
正在抛出错误。
您正在尝试访问尚未设置的数组元素。
在使用之前检查以确保该值存在。
if (isset($_GET['page']))
{
$page = $_GET['page'];
}
else
{
// this is the page they'll have if they havnt specified one
$page = 1;
}
答案 2 :(得分:0)
$_GET['page']
,您的网址需要包含?page=somepage
<?php
$page = (isset($_GET['page']) ? $_GET['page'] : 'home') . '.php';
if(file_exists($page)){
include($page);
} else {
include("404.php");
}
?>