Подтвердить что ты не робот

Обнаруживать, существует ли сеанс PHP

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

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

4b9b3361

Ответ 1

В соответствии с Руководство PHP.net:

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

Ответ 2

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

if(session_id() == '' || !isset($_SESSION)) {
    // session isn't started
    session_start();
}

Ответ 3

Если вы находитесь на php 5.4+, более чистое использование session_status():

if (session_status() == PHP_SESSION_ACTIVE) {
  echo 'Session is active';
}
  • PHP_SESSION_DISABLED, если сеансы отключены.
  • PHP_SESSION_NONE, если сеансы включены, но не существует.
  • PHP_SESSION_ACTIVE, если сеансы включены, а один существует.