Как проверить, введен ли session_start?

У меня есть сторонний script и задавался вопросом, как я могу проверить с помощью PHP, если session_start() было объявлено перед тем, как что-то сделать?

something like if(isset($_session_start())) { //do something } 

Ответ 1

if(!isset($_SESSION)) {
     session_start();
}

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

Ответ 2

Как и в PHP >= 5.4.0, у вас есть функция session_status(), которая сообщает вам, была ли она инициализирована или нет или отключена.

Например, вы можете:

if (session_status() == PHP_SESSION_NONE) {
  session_start();
}

Подробнее об этом можно узнать в http://www.php.net/manual/en/function.session-status.php

Ответ 3

Я полагаю, вы могли бы использовать функцию session_id:

session_id() возвращает идентификатор сеанса для текущего сеанса или пустого string (""), если нет текущего сеанс (нет текущего идентификатора сеанса существует).

Или, может быть, проверка того, установлен ли $_SESSION или нет, с isset, может сделать трюк, поскольку он не должен быть установлен когда сеанс не запущен, вам просто нужно надеяться, что ничто не присваивает ничего $_SESSION без начала сеанса.

Ответ 4

для php >= 5.4.0

if (session_status() == PHP_SESSION_NONE) {
session_start();
}

для php < 5.4.0

if(session_id() == '') {
session_start();
}

Ответ 5

if(isset($_SESSION)) {
    // do something
}

Ответ 6

function session_started(){ return !!session_id(); }

Ответ 7

Если сеанс уже запущен, Ошибка: "Неустранимая ошибка: нельзя использовать значение функции возврата в контексте записи"

Попробуйте следующее:

$session = session_id();
if(empty($session)){ 
    session_start();
}

Ответ 8

Я просто написал для него простую функцию.

  function isSessionStart ()
  {
    if (version_compare(phpversion(), '5.4.0', '<')) {
      if(session_id() == '') {
        return false;
      }
      return true;
    }
    else {
      if (session_status() == PHP_SESSION_NONE) {
        return false;
      }
      return true;
    }
  }

Ответ 9

лучший способ работы для меня!   if (session_status()!= 1)   session_start();

Ответ 10


    if(defined('SID'))
        // do