2013-05-22 78 views
1

我試圖獲得第一個條目,如果在$_POST$_SESSION中沒有設置任何值,但是當我使用die(print_r($nmcu));輸出下面時,我總是隻得到1,如果我將數字添加到「進入1" 和‘2號出口’,似乎工作,但我不知道爲什麼,我不想在名稱數量...使用array_keys獲取數組條目

<?php 
session_start(); 
$entry = array(
"entry" => array("user" => "username", 
     "pass" => "password", 
     "host" => "localhost", 
     "port" => 1111, 
     "protocol" => "http"), 

"exit" => array("user" => "username", 
     "pass" => "password", 
     "host" => "localhost", 
     "port" => 1111, 
     "protocol" => "http")); 


if (isset($_POST['currentEntry'])) { 
    $_SESSION['currentEntry'] = $_POST['currentEntry']; 
} 
if (isset($_SESSION['currentEntry'])) { 
    $currentEntry = $_SESSION['currentEntry']; 
} else { 
    $keys = array_keys($entry); 
    $currentEntry = $keys[0]; 
    $_SESSION['currentEntry'] = $currentEntry; 
} 
$nmcu = $entry[$currentEntry]; 
?> 
+1

你能解釋一下你正在嘗試做什麼嗎? –

+0

我不明白你在想什麼 – Shin

+0

很抱歉,如果不清楚。如果沒有任何內容是$ _POST或者$ _SESSION,那麼我想要這段代碼返回「entry」數組,所以如果你沒有任何表單提交頁面,我希望它返回「entry」數組細節,但是如果它們是$ _POST =條目或=退出然後返回根據數組的細節 – medoix

回答

1

清潔您的會話(或var_dump($_SESSION)檢查一下。我相當肯定你在那裏有一個無效的密鑰,所以print_r()什麼都不打印,並且返回, which is then outputed by die()`。

此外,我建議使用var_dump()而不是print_r()進行此類測試。

+0

你是對的,我刪除了我的會話,並開始工作。但是,當我刪除會話,並嘗試去/index.php?currentEntry=exit它仍然設置條目作爲currentEntry,因此它看起來$ _POST沒有被讀取,我試圖刪除會話,仍然是相同的。 – medoix

+0

這是一個get請求,所以你應該使用'$ _GET'。 –

+0

LEGEND,謝謝。 – medoix