2015-02-11 146 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"] : '';