2012-02-29 4 views
1

私はさまざまな要求(たとえば、将来のdbへのアクセスでそれを再利用するためのユーザーとパスワードなど)間の値を保存する必要があるため、Zend_Session :: start()を各リクエストで使用しています。Zend_Sessionはどこのクッキーですか?

私はZend_Session :: start()を使用するときにクッキーが作成されるかどうか知りたいと思います。最も重要なのは、保存されている場所(サーバーとクライアントの両方)を見ることができるところです。

私は実際にセッションを使用すると、クッキーの作成が含まれていること読んでしかし、私は同じことがすべてのセッションをするためのいくつかの方法が必要ですのZend_Http_Cookie

答えて

2

Zend_Sessionは標準のPHPセッション機能を拡張しているので、セッションを開始するとクッキーが設定されます。セッションデータが保存される場所は設定によって異なります。デフォルトでは、データはファイルに保存され、その場所は設定値session.save_pathによって制御されます。

通常、セッションにパスワードを保存しません。ユーザが認証されると、後でアクセスするためにセッションにユーザ名だけを保存することがあります。そのコンポーネントを使用している場合、Zend_Authはこれをすべて処理します。

Zend_Http_Cookieについては忘れてしまいますが、これはユーザーCookieとは関係ありません。 Zend_Session documentationから

+0

ありがとうございます!私はセッションにユーザー名のみを保存する場合、どこでパスワードを取ってdbの接続を行うことができますか? –

+0

アイデアは、ユーザーが認証されたとき(つまり、ログインしたとき)にのみユーザー名を保存することです。それ以降のリクエストでは、セッションのユーザー名が現在のユーザーに属していることを信じることができるので、パスワードは必要ありません。 –

+0

でも、私のWebアプリケーションでは、その後のリクエストで、i5_connect($ user、$ pwd)というmetodを呼び出してDB2からデータを取得する必要があります。パスワードは必要ありませんか? –

2

も存在することがわかるにZend_Sessionと真であるかどうかわからないんだけど認証するクライアント。

意味、サーバーはクライアントに(通常はクッキーの形で)キー(またはセッションID)を与え、セッション変数をそのIDにリンクします(サーバー側では内部的に)。

クライアントがリクエストを送信すると、クッキーと共にセッションIDも送信され、サーバーはそのIDに関連付けられた変数をフェッチし、プログラマが使用できるようになります。

ブラウザごとにCookieのパスが変更されます。

つまり、クライアントはIDしか持っていません。クライアントはセッション変数に何が含まれているかわからないので、彼は見ることができません。


今、私は非常によくZendのを知りませんが、私はZend_Http_Cookieは(変数自体の値はクッキーに保存されている)実際のクッキーためのものであるZend_Sessionは、セッションのためのものであることを前提としています。重要な情報は、読みやすく、変更が容易なため、クッキーに保存しないでください。

2

にZend_Sessionが内部で通常のPHP ext/session関数を使用して、すべてのおなじみのオプションや設定が適用されます(http://www.php.net/sessionを参照)

またZend_Sessionのいくつかの動作を設定することも使用:Zend_Session::setOptions()

Zend_Session::setOptions(array(
    'use_only_cookies' => 'on', 
    'remember_me_seconds' => 864000 
)); 

セまた、Zend_Session Advanced Usage

関連する問題