Определить, существует ли PHP-сессия - PullRequest
36 голосов
/ 21 августа 2010

Facebook теперь предлагает подписки для пользователей, чтобы вы могли получать обновления изменений в реальном времени. Если мое приложение получит обновление, я планирую сохранить его в базе данных. Я также хотел бы определить, существует ли их сессия. Если это произойдет, я тоже смогу обновить данные.

Мои идентификаторы сеансов MD5 (fb_id + secret), поэтому я мог легко редактировать их сеанс. Вопрос в том, как я могу определить, существует ли сессия.

Ответы [ 3 ]

51 голосов
/ 01 июля 2013

Я использую комбинированную версию:

if(session_id() == '' || !isset($_SESSION)) {
    // session isn't started
    session_start();
}
34 голосов
/ 21 августа 2010

Согласно инструкции PHP.net :

Если используется $_SESSION (или $HTTP_SESSION_VARS для PHP 4.0.6 или менее), используйте isset(), чтобы проверить, что переменная зарегистрирована в $_SESSION.

17 голосов
/ 02 декабря 2016

Если вы используете php 5.4+, лучше использовать session_status () :

if (session_status() == PHP_SESSION_ACTIVE) {
  echo 'Session is active';
}
  • PHP_SESSION_DISABLED если сеансы отключены.
  • PHP_SESSION_NONE если сеансы включены, но ни один не существует.
  • PHP_SESSION_ACTIVE, если сеансы включены и один существует.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...