我正在尝试使用我的索引页面中的url varibale帮助来自page1.php,page2.php和page3.php的内容。
这是我的索引页面代码
<html>
<head>
</head>
<body>
<h1>Hello there></h1>
<ul>
<li><a href="index.php?page=page1.php">page 1</a>page1</li>
<li><a href="index.php?page=page2.php">page 2</a>page2</li>
<li><a href="index.php?page=page3.php">page 3</a>page3</li>
</ul>
<?php
$page = $_GET['page'];
$pages = array('page1', 'page2', 'page3');
if (!empty($page)) {
if(in_array($page,$pages)) {
include($page);
}
else {
echo 'Page not found. Return to
<a href="index.php">index</a>';
}
}
else {
include('page1.php');
}
?>
</body>
</html>
索引页面显示未定义的变量$ page
答案 0 :(得分:1)
您必须使用array('page1.php', 'page2.php', 'page3.php');
或避免从网址扩展.php
以及数组,并在$page.".php"
中使用include
。还要确保$_GET['page'];
已设置
<html>
<head>
</head>
<body>
<h1>Hello there></h1>
<ul>
<li><a href="index.php?page=page1.php">page 1</a>page1</li>
<li><a href="index.php?page=page2.php">page 2</a>page2</li>
<li><a href="index.php?page=page3.php">page 3</a>page3</li>
</ul>
<?php
$page = isset($_GET['page'])?$_GET['page']:'page1.php';
$pages = array('page1.php', 'page2.php', 'page3.php');
if (!empty($page)) {
if(in_array($page,$pages)) {
include($page);
}
else {
echo 'Page not found. Return to
<a href="index.php">index</a>';
}
}
else {
include('page1.php');
}
?>
</body>
</html>
答案 1 :(得分:0)
我建议使用框架中的路由系统。
除了$ _GET变量:index.php?page = page1.php之外,还返回$ pages数组中不存在的字符串“page1.php”。将.php添加到$ pages数组中,你应该让它工作。
路由系统的建议: http://silex.sensiolabs.org/
使用symfonys路由和请求组件。会省你一些头疼的事。
答案 2 :(得分:0)
<html>
<head>
</head>
<body>
<h1>Hello there></h1>
<ul>
将page1.php更改为page1 因为数组中没有page1.php它只有page1 .....
<li><a href="index.php?page=page1">page 1</a>page1</li>
<li><a href="index.php?page=page2">page 2</a>page2</li>
<li><a href="index.php?page=page3">page 3</a>page3</li>
</ul>
<?php
你有未定义索引,因为第一次页面加载$ _GET ['page']没有退出。你需要检查是否设置了$ _GET ['page']
if(isset($_GET['page']))
{
$page = $_GET['page'];
$pages = array('page1', 'page2', 'page3');
if (!empty($page)) {
if(in_array($page,$pages)) {
这里$ page只包含page1,page2 ... else所以你需要与“.php”结合
include($page.".php");
}
else {
echo 'Page not found. Return to
<a href="index.php">index</a>';
}
}
else {
include('page1.php');
}
}
?>
</body>
</html>