0

フレームワークなしのコードを新しい Zend アプリケーションに統合する必要があります。ただし、セッションを共有する必要があります。私が直面している問題は、使用して非 Zend php からセッション変数を設定しているときです。

$_SESSION['MyApp']['user']=$user;

Zend アプリケーションからセッションにアクセスできません。両方試してみました -

print_r($_SESSION['MyApp']['user']);

$myAppSession = new Zend_Session_Namespace('MyApp');
print_r($myAppSession->user);

うまくいきません。情報 - 持っています

resources.session.name = "MyApp"

私のブートストラップiniファイルで。

4

3 に答える 3

0

Zend_Session_Namespace は $_SESSION の単なるラッパーなので、これは簡単です。うまくいかないと言うとき、$_SESSION 配列は空ですか? その場合は、同じ方法でセッションを作成していることを確認してください (つまり、同じセッション ストレージ、Cookie 名などを使用します)。

于 2011-05-13T13:16:32.587 に答える
0

私は方法を見つけました.Zendセッションは通常のPHPセッションとは異なるセッションIDを持っているので、私がしたことはリクエストでzendからセッションIDを送信し、そのセッションIDでセッションを開始することでした-

    if(isset($_REQUEST['sess_id'])) {
        $sess_id = $_REQUEST['sess_id'];
    }

    session_id($sess_id);
    session_start();

美しいコードではありませんが、機能します。

于 2011-07-04T07:51:15.973 に答える
0

セッション名を ZF セッション名前空間と混同しています。

セッション名は、セッション Cookie に保存されている値を参照し、 の実際の内容には影響しません$_SESSION

アプリがセッションを共有するには、session_name()またはsession.namephp.ini ディレクティブを使用して、両方で同じ名前を設定する必要があります。

于 2011-05-13T13:24:56.670 に答える