У меня есть сторонний скрипт, и мне интересно, как я могу проверить 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()
возвращает идентификатор сеанса для текущего сеанса или пустую строку (""), если текущий сеанс отсутствует (текущий идентификатор сеанса отсутствует).
Или, возможно, тестирование того, установлено ли $_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