【问题标题】:codeigniter temporary session to give user edit optioncodeigniter 临时会话为用户提供编辑选项
【发布时间】:2012-01-22 18:42:51
【问题描述】:

我正在尝试让用户在发布 5 分钟后为他们刚刚添加的内容添加标题。我这样做对吗?

config.php 中,我将$config['sess_expiration'] 设置为300(5 分钟) 当他们添加内容时,我在控制器中设置了会话:

$values = array(
    'image_id' => $uploaded_image_id,
    'session_id' => $this->session->userdata('session_id')
);

$this->session->set_userdata('edit', $values);

在我看来,我目前正在检查这样的会话:

<?php if ($this->session->userdata('edit')) : ?> 
<?php
$session_info = $this->session->userdata('edit');
if ($session_info['image_id'] == $alpha_id 
    &&
    $this->session->userdata('ip_address') == $_SERVER['REMOTE_ADDR'] 
    &&
    $session_info['session_id'] == $this->session->set_userdata('session_id')) :
?> 

if() 中,会显示一个编辑标题表单

仅供参考,$alpha_id 是来自 URI 的内容 id

我的处理方式正确吗?

【问题讨论】:

    标签: php codeigniter session


    【解决方案1】:

    当您真正尝试读取会话数据时,您正在使用set_userdata

    你也可以在 if 子句中赋值:

    <?php if ( $session_info = $this->session->userdata('edit') ): 
    
        if ($session_info['image_id'] == $alpha_id 
            &&
            $this->session->userdata('ip_address') == $_SERVER['REMOTE_ADDR'] 
            &&
            $session_info['session_id'] == $this->session->userdata('session_id')
        ):
            // Do stuff
        endif;
    endif; ?>
    

    【讨论】:

    • 感谢您发现,已修复。另外,我怎样才能一次编辑两件事?目前,如果我发布一些内容,然后快速发布其他内容,第一个编辑权限会被覆盖,这意味着只能编辑第二个帖子。我希望无限次会话成为可能,我该怎么做?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多