web-dev-qa-db-fra.com

Comment imprimer toutes les variables de session actuellement définies?

Sans avoir à appeler chaque variable de session par son nom, existe-t-il un moyen d'afficher le contenu de toutes les variables de session actuellement définies?

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

Ou vous pouvez utiliser print_r si vous ne vous souciez pas des types. Si vous utilisez print_r, vous pouvez créer le deuxième argument TRUE afin qu'il retourne à la place de echo, utile pour ...

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

Pas simple, non.

Disons que par "actif" vous voulez dire "n'a pas dépassé la durée de vie maximale", n'a pas été explicitement détruit et que vous utilisez le gestionnaire de session par défaut.

  • Tout d'abord, la durée de vie maximale est définie comme une configuration php.ini et est définie en termes de la dernière activité de la session. Ainsi, le mécanisme "d'expiration" devrait lire le contenu des sessions pour déterminer l'expiration définie par l'application.
  • Deuxièmement, vous devez lire manuellement le répertoire des sessions et lire les fichiers dont je ne connais même pas le format.

Si vous en avez vraiment besoin, vous devez implémenter une sorte de gestionnaire de session personnalisé. Voir session_set_save_handler .

Tenez également compte du fait que vous ne recevrez aucun retour si l’utilisateur ferme simplement le navigateur ou s’éloigne de votre site sans se déconnecter explicitement. Selon le degré d'inactivité que vous considérez comme le seuil permettant de considérer une session comme "inactive", le nombre de faux positifs que vous obtiendrez peut être très élevé.

4
Artefacto

Vous pouvez utiliser le code suivant.

print_r($_SESSION);
0
Young
session_start();
echo '<pre>';var_dump($_SESSION);echo '</pre>';
// or
echo '<pre>';print_r($_SESSION);echo '</pre>';

NOTE: session_start (); line is must alors seulement vous pourrez imprimer la valeur $ _SESSION

0
Atul Baldaniya