временный сеанс codeigniter для предоставления пользователю возможности редактирования - PullRequest
2 голосов
/ 22 января 2012

Я пытаюсь дать пользователям возможность добавить заголовок к контенту, который они только что добавили, в течение 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содержимое id из URI.

Правильно ли я об этом говорю?

1 Ответ

1 голос
/ 22 января 2012

Вы используете 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; ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...