2015-02-11 121 views
0

我去作出算法菜单使用此代码对的index.php错误在哪里?

<?php 
$menu=$_GET[menu]; 
$file=$_GET[file]; 

if(!isset($menu)) 
{ 
    $menu="home"; 
} 
if(($menu=="'")||($menu="-")||($menu="/")) 
{ 
    $menu="home"; 
} 
switch($menu) 
{ 
    case'home': 
     $file="isi/home.html"; 
    break; 
    case'profile': 
     $file="isi/profile.html"; 
    break; 
    case'gallery': 
     $file="isi/lihat_bukutamu.php"; 
    break; 
    case'download': 
     $file="isi/lihat_bukutamu.php"; 
    break; 
    case'contact': 
     $file="isi/buku_tamu.php"; 
    break; 
} 
include"header.php"; 
include"menu.php"; 
include"content.php"; 
include"footer.php"; 
?> 

但但是当我尝试这个剧本拿给我

注意:使用未定义的常量菜单 - 假设“菜单'在 C:\ XAMPP \ htdocs中\上线布局\的index.php 2

说明:未定义指数:菜单在C:\ XAMPP \ htdocs中\上 线2

布局\的index.php

注意:未定义的常量文件的使用 - 假定 '文件' 在 C:\ XAMPP \ htdocs中\布局\的index.php上线3

说明:未定义指数:文件在C:\ XAMPP \ htdocs中\布局\上 线3

的index.php这是menu.php

<div id="menu-content"> 
      <div id="menu"> 
       <h3 class ="judul_1">Main Menu</h3> 
        <ul> 
         <li><a href="index.php?menu=home">Home</a></li> 
         <li><a href="index.php?menu=profile">Profile</a></li> 
         <li><a href="index.php?menu=gallery">Gallery</a></li> 
         <li><a href="index.php?menu=download">Download</a></li> 
         <li><a href="index.php?menu=contact">Contact</a></li> 
        </ul> 
       </div> 

你能解决吗?

回答

1

您指定其中没有定义的数组常量。指定为字符串

更改此

$menu=$_GET[menu]; 
$file=$_GET[file]; 

$menu=$_GET['menu']; 
$file=$_GET['file']; 

希望这有助于你

+0

我再有一个问题,你能解决吗? – 2015-02-11 10:28:00

+0

好的,告诉我是什么问题 – 2015-02-11 10:30:13

+0

是否“和”是不同的?对不起,只是 – 2015-02-11 10:34:30

2

加引号你的变量,如:

$menu=$_GET['menu']; 
$file=$_GET['file']; 
... 
+1

只需30秒,末回答 – 2015-02-11 10:24:33

0

加上引号在其他的答案中指出将取消通知,但不改变脚本是如何工作的(PHP会添加引号)。

你没有用$file变量做任何事情。我想你想将它包含在页眉和页脚之间。

include "header.php"; 
include "menu.php"; 
include "content.php"; 
include $file; 
include "footer.php"; 

注意我不建议通过file通过GET/POST,因为攻击者可以使脚本包括从你的文件系统/显示任意文件,如果没有适当的安全。

+0

好吧!谢谢你的建议! – 2015-02-11 10:52:38

0

首先,您在$ _GET [菜单]中缺少引号。而另一件你也应该在获得请求参数时总是使用isset或empty。

例子:

$menu= !empty($_GET["menu"]) ? $_GET["menu"] : '';