web-dev-qa-db-ja.com

PHPセッション変数を表示する

これがここにあるのかwebappsにあるのかわかりません...必要に応じて移動してください。

そのようなことが可能かどうかはわかりませんが、FirefoxまたはChromeの拡張機能またはアドオンがあります。これにより、すべてのPHPセッション変数Cookieを表示できる拡張機能がありますか?

30
EmmyS

Cookieはクライアント側で利用できるため、ブラウザから見ることができます。


一方、セッションデータはサーバーに保存され、クライアントに送信されることはありません(それを行うためのコードを書くことを除いて、コース)

_$_SESSION_などの変数の内容をダンプするには、 var_dump() 関数を使用できます。
開発サーバーに、 Xdebug 拡張機能をインストールして、出力を大幅に強化できます(およびロットその他のデバッグ関連のもの、btw)

ページのHTMLを汚染したくない場合は、FireBugに FirePHP 拡張機能をインストールし、対応する= PHPデータを送信するライブラリ(変数のダンプのような)それに。
これにより、_$_SESSION_などの変数をfirebugのコンソールに表示できます。

57
Pascal MARTIN

PHPセッション変数はサーバーに保存されており、クライアントはアクセスできません。

6
Nick

いいえ。セッションデータはサーバー側で、Cookieはクライアント側です。セッションCookieにはセッション識別子が含まれており、サーバー(つまり、PHP)はこれを使用して適切なセッションデータを取得します。

サーバーへのリモートアクセスなしで、または(サーバー上にある)スクリプトを使用して、セッションデータを表示することはできません。

これは、「機密」情報をクッキーではなくセッションに保存することをお勧めする理由です。簡単に相談/変更できないためです。

3
netcoder

いいえ。セッション変数はサーバーに保存されます。 Firefoxで表示されるのは、セッションCookieに保存されているセッションのIDのみです(例:PHP_SESS_ID=randomgarbage)。

セッション変数をダンプするスクリプトを明示的に記述する必要があります。次のような単純なものです。

dumpsession.php:

<pre>
<?php
    var_dump($_SESSION);
1
Marc B

$ _SESSION変数を表示するこの簡単なスクリプトがありました。

   <?php
error_reporting(E_ALL);
session_start();
if (isset($_POST['session'])) {
    $session = eval("return {$_POST['session']};");
    if (is_array($session)) {
        $_SESSION = $session;
        header("Location: {$_SERVER['PHP_SELF']}?saved");
    }
    else {
        header("Location: {$_SERVER['PHP_SELF']}?error");
    }
}

$session = htmlentities(var_export($_SESSION, true));
?>
<!DOCTYPE html>
<html lang="en-US">
    <head>
        <meta charset="UTF-8">
        <title>Session Variable Management</title>
        <style>
            textarea { font: 12px Consolas, Monaco, monospace; padding: 2px; border: 1px solid #444444; width: 99%; }
            .saved, .error { border: 1px solid #509151; background: #DDF0DD; padding: 2px; }
            .error { border-color: #915050; background: #F0DDDD; }
        </style>
    </head>
    <body>
        <h1>Session Variable Management</h1>
<?php if (isset($_GET['saved'])) { ?>
        <p class="saved">The session was saved successfully.</p>
<?php } else if (isset($_GET['error'])) { ?>
        <p class="error">The session variable did not parse correctly.</p>
<?php } ?>
        <form method="post">
            <textarea name="session" rows="<?php echo count(preg_split("/\n|\r/", $session)); ?>"><?php echo $session; ?></textarea>
            <input type="submit" value="Update Session">
        </form>
    </body>
</html>

テストサーバーにインストールし、「sess.php」などの名前を付けると、現在のセッションが表示されます。本番サーバーに残さないでください!!!

0
Louis

次を使用できます。Print_r($ _SESSION);

0

セッションから何かにアクセスするには、var_dumpを使用できますが、セキュリティ上の制限のためにブラウザを使用しません。 http://php.net/manual/en/function.var-dump.php

0
Cninroh