Intereting Posts
PHP: Лучший способ проверить, является ли ввод допустимым числом? Восстановить массив из квартиры (где дочерние массивы хранят индекс родительского массива) в многомерном? Проблемы с регулярным выражением XSL – получите SUM цены Несколько экземпляров (2) Zend_Auth PHP-эквивалент привязки JavaScript Larvel 4.2 artisan CLI больше не работает после обновления композитора Как создать правильный SOAP-запрос с помощью PHP PHP – рекурсивный многомерный матричный итератор Что было бы хорошим образцовым проектом, чтобы попросить потенциального программиста кодировать во время процесса найма? Popup cookie один раз за сеанс браузера Объединение массивов в один, сохраняя значения key => value PHP Вытяните столбцы из производной таблицы и суммируйте их в одном выражении SELECT MySQL PHP представляет форму с несколькими кнопками отправки с помощью jQuery .post () Проблема с выходом массива в другом массиве

Как проверить, является ли сеанс PHP пустым?

Это плохая практика?

if ($_SESSION['something'] == '') { echo 'the session is empty'; } 

Есть ли способ проверить, является ли его пустым или он не установлен? Я действительно делаю это:

 if (($_SESSION['something'] == '') || (!isset($_SESSION['something'])) { echo 'the session is either empty or doesn\'t exist'; } 

!isset просто проверяет, существует ли $_SESSION[''] и не проверяет, имеются ли значения в массиве или нет

Related of "Как проверить, является ли сеанс PHP пустым?"

Я бы использовал isset и empty :

 session_start(); if(isset($_SESSION['blah']) && !empty($_SESSION['blah'])) { echo 'Set and not empty, and no undefined index error!'); } 

array_key_exists – хорошая альтернатива использованию isset для проверки ключей:

 session_start(); if(array_key_exists('blah',$_SESSION) && !empty($_SESSION['blah'])) { echo 'Set and not empty, and no undefined index error!'); } 

Убедитесь, что вы вызываете session_start перед чтением или записью в массив сеансов.

Используйте isset , empty или array_key_exists (особенно для ключей массива), прежде чем обращаться к переменной, существование которой вы не уверены. Поэтому измените порядок во втором примере:

 if (!isset($_SESSION['something']) || $_SESSION['something'] == '') 

вы ищете empty() функцию PHP

Вы можете использовать функцию count (), чтобы узнать, сколько записей в массиве $ _SESSION. Это не очень хорошая практика. Вместо этого вы должны установить идентификатор пользователя (или что-то подобное), чтобы проверить, был ли сеанс инициализирован или нет.

 if( !isset($_SESSION['uid']) ) die( "Login required." ); 

(Предполагая, что вы хотите проверить, зарегистрирован ли кто-либо)

Если вы хотите проверить, доступны ли сеансы, вы, вероятно, захотите использовать функцию session_id() :

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

 if(isset($_SESSION)) {} else {} 

Это не плохая практика. Но вы можете получить сообщение об ошибке

undefined index (ключ, который вы определили)

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