2016-03-11 6 views
0

У меня есть следующий кодUnset поднятие слишком рано

Проблема заключается в том, что unset($_SESSION['variable']); является снятием с охраной не только весь $_SESSION, но и останавливает собственные, если заявление от работы, так как ни эха или функция, вызываемого делать что-либо, если удаленная строка удалена, обе эти функции работают нормально.

if (isset($_SESSION['variable'])) { 
    echo 'yay'; 
    $boxes['error'] = $this->function($_SESSION['variable']); 
    unset($_SESSION['variable']); 
} 

Я никогда не видел этого раньше

+0

отключенное в основном завершает переменную. То, что вы должны сделать, просто удаляет значение. И проверьте, является ли переменная пустой или нет. –

+1

Я выяснил, что это произошло потому, что я не добавил строку 'exit();' в заголовок ''(' location: ')' на другой странице, чтобы сеанс уже не был установлен. Итак, это утверждение if отлично работает сейчас –

+0

@milky_jay: спасибо за ваш комментарий. Это помогло мне исправить проблему в Wordpress, где мой сеанс не был установлен слишком рано, как вы сказали, потому что я не добавлял 'exit();' после 'wp_safe_redirect'. Может быть, это тоже помогает кому-то :). – Clawsy

ответ

0

Использование

if (!empty($_SESSION['variable'])) { 
    echo 'yay'; 
    $boxes['error'] = $this->function($_SESSION['variable']); 
    $_SESSION['variable'] = ''; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^