У меня есть сторонний script и задавался вопросом, как я могу проверить с помощью PHP
, если session_start()
было объявлено перед тем, как что-то сделать?
something like if(isset($_session_start())) { //do something }
У меня есть сторонний script и задавался вопросом, как я могу проверить с помощью PHP
, если session_start()
было объявлено перед тем, как что-то сделать?
something like if(isset($_session_start())) { //do something }
if(!isset($_SESSION)) {
session_start();
}
Проверка позволит вам сохранить текущий сеанс активным, даже если это приложение обратной заявки на цикл, в котором вы планируете повторно использовать форму, если данные введены неверно или имеют дополнительные сдержек и противовесов в вашей программе, прежде чем перейти к следующей программе.
Как и в PHP >= 5.4.0, у вас есть функция session_status(), которая сообщает вам, была ли она инициализирована или нет или отключена.
Например, вы можете:
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
Подробнее об этом можно узнать в http://www.php.net/manual/en/function.session-status.php
Я полагаю, вы могли бы использовать функцию session_id
:
session_id()
возвращает идентификатор сеанса для текущего сеанса или пустого string (""), если нет текущего сеанс (нет текущего идентификатора сеанса существует).
Или, может быть, проверка того, установлен ли $_SESSION
или нет, с isset
, может сделать трюк, поскольку он не должен быть установлен когда сеанс не запущен, вам просто нужно надеяться, что ничто не присваивает ничего $_SESSION
без начала сеанса.
для php >= 5.4.0
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
для php < 5.4.0
if(session_id() == '') {
session_start();
}
if(isset($_SESSION)) {
// do something
}
function session_started(){ return !!session_id(); }
Если сеанс уже запущен, Ошибка: "Неустранимая ошибка: нельзя использовать значение функции возврата в контексте записи"
Попробуйте следующее:
$session = session_id();
if(empty($session)){
session_start();
}
Я просто написал для него простую функцию.
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;
}
}
лучший способ работы для меня! if (session_status()!= 1) session_start();
if(defined('SID'))
// do