2011-08-29 47 views
3

我目前使用下面的腳本來檢查,如果存在於我的陣列中的頁面,然後打開它,否則它會打開我的error.php如果存在數組}其他{

<?php 
    $page = $_GET['page']; 
    $pages = array('p_1', 
        'p_2', 
        'p_3', 
        'error'); 

    if (!empty($page)) { 
    if(in_array($page, $pages)) { 
     $page .= '.php'; 
     require_once('../' . $page . ''); 
    } 
    } 
    else { 
     require_once('../error.php'); 
    } 
?> 

偶然(到現在爲止我沒't測試它)我在我的網站中添加了newpage.php,並忘記將其添加到我的數組中。

但我的腳本,而不是顯示我的error.php它打開newpage.php。

我哪裏錯了?

謝謝

回答

4

遺憾地說,但它是不可能的。不在這段代碼中。搜索需要/包括別的地方

而且,error.php僅顯示情況$_GET['page']是空

<?php 
    $page = $_GET['page']; 
    $pages = array('p_1', 
        'p_2', 
        'p_3', 
        'error'); 

    if (!empty($page)) { 
     if(in_array($page, $pages)) { 
       $page .= '.php'; 
       require_once('../' . $page . ''); 
     } 
     else require_once('../error.php'); 
    } 
    else require_once('../error.php'); 

?> 

是正確的

+0

我將測試感謝你 – Pavlos1316

+0

你是缺少一個**其他{**,但仍然沒有給error.php。它顯示我的newpage.php Ahhhh ...你編輯它... – Pavlos1316

+0

@ Pavlos1316:其他{是不需要,當它是一行代碼 – genesis

1

我不知道爲什麼它打開newpage.php無看到你的代碼的其餘部分,但我可以告訴你爲什麼它沒有顯示error.php頁面

如果$ _GET ['page']「爲空」,您的代碼只顯示error.php(即null,0 ,'')。 要修復它,你應該試試下面的代碼:

<?php 
$page = $_GET['page']; 
$pages = array('p_1', 
       'p_2', 
       'p_3', 
       'error'); 

if(!empty($page) && in_array($page, $pages)) { 
    $page .= '.php'; 
    require_once('../' . $page . ''); 
} else { 
    require_once('../error.php'); 
} 

>

相關問題