1

初めてページにアクセスしたときにphpによって自動的に挿入されるセッションデータを抽出する方法に関する明確な情報を見つけることができませんでした.

application.ini を使用してセッションをデータベースに保存する通常の方法を使用しています。そのため、ログインしていない人のセッション ID を取得する必要があります。データを取得するために使用する名前空間は? ここに私のapplication.iniがあります

resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable"

resources.session.saveHandler.options.name = "sessions"
resources.session.saveHandler.options.primary = "id"
resources.session.saveHandler.options.modifiedColumn = "modified"
resources.session.saveHandler.options.dataColumn = "data"
resources.session.saveHandler.options.lifetimeColumn = "lifetime"

これで、ある人がサイトにアクセスするとセッションが追加されることがわかりましたが、そのセッション データにアクセスするにはどうすればよいでしょうか?

ユーザーがログインしているときにのみセッション名前空間を設定する方法を知っていますが、ログインしていないときは手動でセッションを作成することも何もないので、迷っています。

この質問をより明確な方法で定式化する方法がわかりません。

の線に沿って何かを探しています

$NonLoggedInSession = new Zend_Session_Namespace('Zend_Session_namesapce(?)');
$NonLoggedInSession -> sessionid // should return something like 21hir1GI31!1gotig1 (the session id it created in the database)
4

1 に答える 1

1

Zend_Session::getIterator()すべてのオブジェクトを含む反復可能なオブジェクトを返す必要がありZend_Session_Namespaceます。

Zend_Session::getId()おそらくあなたが探しているものです。これは、少なくとも私のアプリケーションでは現在のセッション Cookie の値を返します。

そのセッション Cookie の名前を取得するにはZend_Session::getOptions('name')

これらの呼び出しをテストするために使用しているアプリケーションは、セッション Cookie を明示的に設定しないことに注意してください。Zend_Session_Namespace を使用して、アプリケーションのさまざまなポイントでデータを保持しています。したがって、設定されたセッション Cookie はすべて、Zend Framework のデフォルトの結果です。

アプリケーションに返される値は、Firefox で Cookie を表示したときに表示される値と一致します。

于 2012-09-09T08:32:09.573 に答える