it-roy-ru.com

Как напечатать все переменные сеанса, установленные в данный момент?

Без необходимости вызывать каждую переменную сеанса по имени, есть ли способ отобразить содержимое всех переменных сеанса, установленных в настоящее время?

53
Georgy
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';

Или вы можете использовать print_r, если вам не нужны типы. Если вы используете print_r, вы можете сделать второй аргумент TRUE, чтобы он возвращал вместо echo, полезный для ...

echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
117
alex
<?php
    session_start();
    echo "<h3> PHP List All Session Variables</h3>";
    foreach ($_SESSION as $key=>$val)
    echo $key." ".$val."<br/>";
?>
8
Linda Cox

Не простой способ, нет.

Допустим, под «активным» вы подразумеваете «не прошло максимальное время жизни» и не были явно уничтожены, и что вы используете обработчик сеанса по умолчанию.

  • Во-первых, максимальное время жизни определяется как конфигурация php.ini и определяется в терминах последнего действия в сеансе. Таким образом, механизм «истечения срока действия» должен будет считывать содержимое сеансов, чтобы определить срок действия, определенный приложением.
  • Во-вторых, вам нужно будет вручную прочитать каталог сессий и прочитать файлы, формат которых, я даже не знаю, в них.

Если вам это действительно нужно, вы должны реализовать какой-то собственный обработчик сеанса. Смотрите session_set_save_handler .

Примите также во внимание, что у вас не будет обратной связи, если пользователь просто закроет браузер или уйдет с вашего сайта без явного выхода из системы. В зависимости от большой неактивности, которую вы считаете порогом для того, чтобы считать сеанс «неактивным», количество получаемых вами ложных срабатываний может быть очень высоким.

4
Artefacto

Вы можете использовать следующий код.

print_r($_SESSION);
0
Young

это сработало для меня:

<?php echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>'; ?>

спасибо, что поделились кодом ...

Array
(    
    [__ci_last_regenerate] => 1490879962

    [user_id] => 3

    [designation_name] => Admin
    [region_name] => admin
    [territory_name] => admin
    [designation_id] => 2
    [region_id] => 1
    [territory_id] => 1
    [employee_user_id] => mosin11
)
0
Mosin
session_start();
echo '<pre>';var_dump($_SESSION);echo '</pre>';
// or
echo '<pre>';print_r($_SESSION);echo '</pre>';

ПРИМЕЧАНИЕ: session_start (); строка обязательна тогда только вы сможете напечатать значение $ _SESSION

0
Atul Baldaniya