这是我的整个代码。与您分享。
这是我的错误:
Notice: Undefined index: page in /export/home/dynamic/index.php on line 20
我似乎无法弄清楚为什么我一直收到这个错误。这不是第一次,我怀疑它是阵列,但我不知道如何处理它。
假设在我的网站上创建一个动态更改页面。
在我创建像$page = $_GET['page'];
我对任何答案持开放态度,我对他们中的每一个人都非常感激。
<!DOCTYPE html>
<html>
<head>
<title>Website</title>
</head>
<body>
<header>Header<br />
<nav>
<a href="index.php?page=index">INDEX</a>
<a href="index.php?page=page1">Startsida</a>
<a href="index.php?page=page2">Anteckningar</a>
<a href="index.php?page=page3">Kontakt</a>
<!-- <a href="index.php?page=faq">FAQ</a> -->
</nav></header>
<div id="content">
<?php
// Place the value from ?page=value in the URL to the variable $page.
$page = $_GET['page'];
// Create an array of the only pages allowed.
$pageArray = array(
'index',
'page1',
'page2',
'page3',
'faq'
);
// If there is no page set, include the default main page.
if (!$page) {
include('pages/index.php');
}
// Is $page in the array?
$inArray = in_array($page, $pageArray);
// If so, include it, if not, emit error.
if ($inArray == true) {
include('pages/'. $page .'.php');
}else {
echo 'Umm tisk tisk. You should not be messing with things.';
}
?>
</div>
<footer>Footer</footer>
</body>
</html>
它已经解决了! 感谢hek2mgl我的代码现在正常运行。
我要感谢其他人提交我的问题的答案。我欠你们的。
答案 0 :(得分:5)
您需要检查是否通过GET vars传输page
:
if(isset($_GET['page'])) {
$page = $_GET['page'];
} else {
// set proper default value if it was not set
$page = 'index';
}
在下一步中,您需要检查$page
是否包含正确的值:
if(!in_array($page, $pages)) {
die('page was not found');
}
答案 1 :(得分:1)
您正在分配一个不存在的值。在使用$ _GET之前,您应该检查它是否存在。
使用isset($_GET['page'];)
答案 2 :(得分:1)
这是因为'page'
不是$_GET
中的现有索引。你可以检查它是第一个
$page = isset($_GET['page']) ? $_GET['page'] : "";
或者你可以沉默通知
$page = @$_GET['page'];
之后,只需检查该页面是否为已知页面
$page = in_array($page, $knownPages) ? $page : "index";
答案 3 :(得分:1)
$p = array("Home", "About", "Hosting", "VPS","GameServer","Contact");
if(isset($_GET['page']) AND in_array($_GET['page'],$p))
{
include('pages/'.$_GET['page'].'.php');
}else{
include('pages/home.php');
}
答案 4 :(得分:0)
只需稍加修饰
<?php
$p = array("Home", "About", "Hosting", "VPS","GameServer","Contact");
if ((isset($_GET['page']) || !empty($_GET['page'])) && in_array($_GET['page'], $p))
{
include('pages/'.$_GET['page'].'.php');
}else{
include('pages/home.php');
}
?>