2014-02-28 90 views
0

我有一個表單提交數據。讓我們爲例子說,它提交這一數據:php session foreach存儲數據問題

Age  => 23 
    Gender => Male 
    Country => UK 

現在我需要存儲在一個會話陣列,我已經作出。但是,這個數組已經存在並且包含比第一個表單給出的字段更多的字段。例如,這就是會話數組的樣子:

Age => Value 
    Gender => Value 
    Country => Value 
    State => Value 
    Language => Value 

正如您所看到的,只有前3個與第一個表單一起給出。 我想爲每個循環檢測給定的值(在這種情況下:年齡,性別和國家),然後將這些值放入會話數組中。

例如,一個表格會提供的信息:

State => Value 
    Language => Value 

我一直在試圖環繞此我的頭,但我無法找到一個解決方案..:/

+0

檢查這個http://stackoverflow.com/questions/2616540/can-i-use-array-push-on-a-session-array-in-php –

回答

0

喜歡的東西:

$valid_fields = array('Age', 'Gender', 'Country', 'State', 'Language'); 
foreach ($_POST as $key => $value) { 
    if (in_array($key, $valid_fields)) { 
     $_SESSION[$key] = $value; 
    } 
} 
+0

嘿,這不是似乎沒有工作。我使用相同的代碼,使用不同的數組名稱,但這是我在轉儲$ _POST數組時獲得的結果: 'array(6){[「mysqlname」] => string(4)「root」[「mysqlpass」] => string(4)「root」[「mysqlhost」] => string(9)「localhost」[「mysqldatabase」] => string(3)「pfs」[「mysqlport」] => string(4) 「[」 種子「] =>串(32) 」837ec5754f503cfaaee0929fd48974e7「}' ,這是我的$ _SESSION樣子: '的$ _SESSION值[ 'mysqlname']是 '' 的$ _SESSION值['mysqlpass']是'' '....不是完整的..但你明白了..它保持爲空 – Jofairden

+0

這沒有任何意義。 '$ _POST'總是用表單域值初始化。我沒有看到所有MySQL的東西都可以進入它,你的腳本中必須有一些其他的代碼。 – Barmar

+0

哦,等一下,我只是注意到我做錯了順序的東西。讓我重新編寫我的代碼,然後我會以我的發現回到你身邊。 – Jofairden