Сообщить имя сеанса php?

Я установил предварительно созданный форум на своем веб-сайте и хочу (на другой странице) проверить, активен ли сеанс форума.
Что-то вроде:

if (isset($_SESSION['forum'])) { echo "Session is active!"; }

Проблема в том, что я не знаю имени сеанса... Пытался загрузить некоторые надстройки Chrome для управления сеансом, но не могу получить имя сеанса.

Как правильно это сделать?
Спасибо!


person Nir Tzezana    schedule 28.05.2013    source источник
comment
Просто чтобы устранить путаницу; Сеансы PHP хранятся на стороне сервера и могут быть прочитаны только сервером, а не клиентом. Надстройки Chrome, которые вы рассматривали, вероятно, позволят вам сохранять и восстанавливать список открытых вкладок, но это не тот сеанс, который вам нужен.   -  person Patrickdev    schedule 28.05.2013
comment
У вас есть имя сеанса = имя Cookie/Post/GET. И имя переменной, в которой хранятся переменные сеанса. Я не знаю, какой из них вы имеете в виду. Не могли бы вы указать, для чего вы хотели бы использовать это имя, чтобы мы могли помочь вам в дальнейшем?   -  person nl-x    schedule 28.05.2013
comment
Патрик прав. Использование $_SESSION в phpBB означает сохранение собственных данных сеанса в базе данных. Просмотрите include/session.php и include/startup.php, которые могут помочь вам понять, как работает сеанс phpbb.   -  person Damien Keitel    schedule 28.05.2013
comment
@nirTzezana ответ на твой вопрос?   -  person nl-x    schedule 30.05.2013


Ответы (5)


Вы можете увидеть дамп переменной $_SESSION

var_dump($_SESSION);
person Anatoliy Gusarov    schedule 28.05.2013

session_name() даст вам имя сеанса, которое обычно определяется в php.ini. По умолчанию это всегда: PHPSESSID. Это имя используется как имя файла cookie или как имя переменной POST/GET.

session_id() даст вам идентификатор текущего сеанса. Это будет содержимое файла cookie или переменной POST/GET.

Затем у вас есть $_SESSION, который будет содержать все данные вашего сеанса. используйте print_r(), чтобы увидеть, что вы сохранили в нем до сих пор.

Чтобы узнать, установлены ли переменные сеанса, вы также можете просто сделать if(isset($_SESSION)&&count($_SESSION))

person nl-x    schedule 28.05.2013

попробуй print_r ($_SESSION);

так вы увидите все сеансы

person Touchpad    schedule 28.05.2013
comment
Не все сеансы, а все данные, хранящиеся в сеансе (переменная $_SESSION) - person Anatoliy Gusarov; 28.05.2013

<?php 
session_start(); 
print_r($_SESSION);
?>

Используйте это, чтобы увидеть, какие переменные сеанса установлены в данный момент.

person Ryan    schedule 28.05.2013

Вам нужно проверить, что сессия в данный момент активна, а затем определен ключ forum

if ( ! ($sid = session_id()) {
    session_start();        // open session if not yet opened
    $sid = session_id();    // get sid as session ID
}

// $sid contains the session ID (in cookie)

if (isset($_SESSION['forum'])) {
    // forum is defined
}

См. также ответ с этой страницы

person Breaking not so bad    schedule 28.05.2013