如何使用数据更新已设置的会话?

时间:2012-01-17 12:34:01

标签: php arrays codeigniter session

我想用我上传的照片的网址更新会话数组。

到目前为止,我已经能够创建会话并添加数组,但我无法更新数组并将更多图片网址添加到其中。

如何在不覆盖现有数据的情况下更新包含新闻数据的会话。

这是我的代码:

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

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

我正在使用codeigniter框架,但仍然应用相同的逻辑。 http://codeigniter.com/user_guide/libraries/sessions.html

3 个答案:

答案 0 :(得分:5)

set_userdata方法会覆盖会话内容。因此,要附加到会话var,您必须明确地执行此操作:

//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);

答案 1 :(得分:1)

您可以使用php superglobal $_SESSION

在您的情况下$_SESSION['show_photos']保存您的数组,您可以使用以下方法添加数据:

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

答案 2 :(得分:0)

尝试:

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

其中$ show_photos是数组的下一个元素