【问题标题】:How to update an already set session with data?如何使用数据更新已设置的会话?
【发布时间】:2012-01-17 12:34:01
【问题描述】:

我想用我上传的照片的 url 更新一个会话数组。

到目前为止,我已经能够创建会话并添加数组,但我无法更新数组并将更多图像 URL 附加到它。

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

这是我的代码:

$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

【问题讨论】:

标签: php arrays codeigniter session


【解决方案1】:

set_userdata 方法会覆盖会话内容。因此,要附加到 session 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);

【讨论】:

    【解决方案2】:

    你可以使用php超全局$_SESSION

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

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

    【讨论】:

    • 这不会像提问者那样使用 CodeIgniter 的会话方法。
    【解决方案3】:

    尝试:

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

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

    【讨论】:

    • 这不会像提问者那样使用 CodeIgniter 的会话方法。
    • 我的错……我没有注意到问题是关于 CodeIgniter
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2013-12-29
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多