web-dev-qa-db-ja.com

現在設定されているすべてのセッション変数を印刷する方法は?

各セッション変数を名前で呼び出す必要なく、現在設定されているすべてのセッション変数の内容を表示する方法はありますか?

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

または、型を気にしない場合はprint_rを使用できます。 print_rを使用する場合、2番目の引数TRUEを作成して、エコーの代わりに返すようにすることができます。

echo '<pre>' . print_r($_SESSION, TRUE) . '</pre>';
126
alex
<?php
    session_start();
    echo "<h3> PHP List All Session Variables</h3>";
    foreach ($_SESSION as $key=>$val)
    echo $key." ".$val."<br/>";
?>
11
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(); line is mustその後、あなただけが値$ _SESSIONを出力できます

0
Atul Baldaniya