Корректный способ сделать вещи состоит в том, чтобы оставить Apache в 80 и Tomcat в 8 080 и использовать разъем в (предпочтительно mod_proxy) для проксирования Tomcat от Apache. mod_proxy только взял бы Вас 10 минут для установки.
Этот практическое руководство очень просто следовать.
Я бы использовал 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'] == '')
Если вы хотите проверьте, доступны ли сеансы, возможно, вы захотите использовать функцию session_id ()
:
session_id () возвращает идентификатор сеанса для текущего сеанса или пустую строку (""
Вы можете использовать функцию count (), чтобы узнать, сколько записей находится в массиве $ _SESSION. Это не лучшая практика. Вместо этого вам следует установить идентификатор пользователя (или что-то подобное), чтобы проверить, был ли сеанс инициализирован или нет.
if( !isset($_SESSION['uid']) )
die( "Login required." );
(Предполагается, что вы хотите проверить, вошел ли кто-то в систему)