2015-11-26 116 views
0

嗨,這是我的代碼做一些基本的導航。無論我做什麼,當我傳遞參數「stranky」時,它總是打印「其他」。我也試過array_key_exist函數,也沒有運氣。有任何想法嗎?php isset數組總是假的

if(isset($_GET["stranka"])) { 
$page = $_GET["stranka"]; 
$povoleneStranky = array("vsichni", "vecery", "pridej_vecer", "uprav_index"); 

if (isset($povoleneStranky[$page])) { 
    $stranka = "$page.php"; 
    include $stranka; 
    echo $page; 

} else { 
    include ('vsichni.php'); 
    echo "first else <br>"; 

} 
else { 
    include ('vsichni.php'); 
echo "second else"; 
} 
+1

''stranky「'!=='」stranka「' –

+3

您不能有2x其他。 – Rizier123

+0

向我們展示您的HTML「表單」的代碼,如果有的話。 – RockMyAlgorithm

回答

0

您可以將代碼簡化爲:

$povoleneStranky = array("vsichni", "vecery", "pridej_vecer", "uprav_index"); 

if (isset($_GET["stranka"]) && in_array($_GET["stranka"], $povoleneStranky)) { 
    $stranka = $_GET["stranka"] . ".php"; 
    include $stranka; 
    echo $_GET["stranka"]; 
} else { 
    include ('vsichni.php'); 
} 

檢查這是工作。

解決方案2 - 更優化一:

$povoleneStranky = array("vsichni", "vecery", "pridej_vecer", "uprav_index"); 
$stranka = 'vsichni.php'; 

if (isset($_GET["stranka"]) && in_array($_GET["stranka"], $povoleneStranky)) { 
    $stranka = $_GET["stranka"] . ".php"; 
} 

include $stranka; 
+0

是的,這是行得通的。所以isset不適合檢查數組中的值嗎? – Houdasek

+0

'isset'檢查數組中的偏移量。我們必須使用'in_array'來檢查數組值。 –

+0

哦,我不知道..非常感謝 – Houdasek

0

數組有沒有「串」索引/鍵,只有數字和它裏面的物品都是字符串值,因此使用in_array()是更好的辦法來檢查。

if (isset($povoleneStranky[$page])) { 

應該

if (in_array($page, $povoleneStranky)) { 

...除非$_GET["stranka"]有一個數值,在這種情況下,我的答案是無效的。

0

的問題是,你是期運用陣列$povoleneStranky = array("vsichni", "vecery", "pridej_vecer", "uprav_index"); 這個數組是在PHP array([0]=vsichni[1]=>vecery[2]=>pridej_vecer[3]=>uprav_index);

所以somethig這樣就可以使它總是回報運行其他因爲它從來沒有發現$povoleneStranky[$page]你可以嘗試isset($povoleneStranky[0])

0

首先密切相容

if(isset($_GET["stranka"])) { 
$page = $_GET["stranka"]; 
$povoleneStranky = array("vsichni", "vecery", "pridej_vecer", "uprav_index"); 

    if (isset($povoleneStranky[$page])) { 
     $stranka = "$page.php"; 
     include $stranka; 
     echo $page; 

    } else { 
     include ('vsichni.php'); 
     echo "first else <br>"; 

    } 
} 
else { 
    include ('vsichni.php'); 
echo "second else"; 
} 

因爲現在像有人說你不能有2個其他人。 也VAR

$povolenestranky 

是不是在你的情況mulidimensional陣列和你試圖讓

$povolenestranky[$page] 

至極,如果頁面是一個字符串不存在的。