2012-01-17 43 views
0

我想用我上傳的照片的網址更新會議陣列。如何使用數據更新已設置的會話?

到目前爲止,我已經能夠創建會話並添加數組,但我無法更新數組並添加更多圖像網址給它。

如何更新與新聞數據的會話而不覆蓋現有的會話。

這是我的代碼:

$show_photos = array('photo_url' =>'/assets/img/user_photos/thumbs/'.$image_data['file_name']); 

$this->session->set_userdata('show_photos', $show_photos); 

我現在用的是笨的框架,但同樣的邏輯應該仍然適用。 http://codeigniter.com/user_guide/libraries/sessions.html

+0

我不認爲現成的PHP會話這種方式工作。你使用'CodeIgniter'嗎? – J0HN

+0

是的http://codeigniter.com/user_guide/libraries/sessions.html – hairynuggets

回答

5

set_userdata方法覆蓋了會議內容。所以,要附加到會議變種你必須明確這樣做:

//get old value 
$old_val = $this->session->userdata('show_photos'); 
//append to it 
$old_val[] = array('photo_url' =>'/assets/img/user_photos/thumbs/'.$image_data['file_name']); 
//place it back 
$this->session->set_userdata('show_photos', $old_val); 
+0

不錯的一個。真的幫助了我。 – hairynuggets

0

嘗試:

$_session['show_photos'][] = $show_photos; 

其中$ show_photos是陣列

+0

這不會在提問者使用時使用CodeIgniter的會話方法。 – stefandoorn

+0

我的壞..我沒有注意到這個問題是關於CodeIgniter – Elen

1

您可以使用PHP的超全局$_SESSION下一個元素。

在你的情況握着你的陣列,並且可以使用簡單的附加數據:

$_SESSION['show_photos'][] = array('your new data...');

+0

這不會使用CodeIgniter的會話方法,因爲提問者正在使用。 – stefandoorn