3

Zend Session を Zend_Auth および Session 名前空間と組み合わせて次のように使用しています。

アプリケーション.ini

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

ブートストラップ

     /**
     * Start session 
     */
    public function _initCoreSession() {
        $this->bootstrap('db');
        $this->bootstrap('session');
        Zend_Session::start();
    }

Zend_Auth は正常に動作しているように見えますが、他のセッション名前空間は奇妙な動作をしているようです。

いくつかの非同期リクエストを使用します (jQuery を使用)。

-Init (配列をセッションに初期化します)

    $ns = new Zend_Session_Namespace('scanner');
    $ns->unsetAll();
    $ns->pages = array();

・ループ(配列に入れる、この部分を1回からn回呼び出す)

    //Fetch the Session Namespace
    $ns = new Zend_Session_Namespace('scanner');
    //Set scanned page to true
    $ns->pages[$this->getRequest()->getParam('nextUrl')] = true;

-Finalize (配列の処理)

    //Fetch the Session Namespace
    $ns = new Zend_Session_Namespace('scanner');
    //Do stuff with $ns->pages

ただし、ページ変数をループする呼び出しのどこかでリセットされているようです (したがって、null)。

これはデフォルトのセッション動作では機能しますが、Zend_Session_SaveHandler_DbTable を設定すると失敗し始めます。

*編集*

最初の回答への応答として (コード ブロックが必要だったため)

$.post を使用してアプリケーションにリクエストを送信しています。データ (URL) を含むリクエストをアプリケーションに送信し、ステータスの更新と次にリクエストする URL を受け取ります。そして、これは次の URL を受信しなくなるまでループします。

使用した jQuery コード

    function scanUrl(url)
    {
        $.post("http://www.example.com/scan/scanurl", { nextUrl: url },
       function(data) 
       {
         updateView(data);

         if(data.nextUrl != null)
             scanUrl(data.nextUrl);
         else
             finalize();
       });
    }
4

1 に答える 1

1

aymc リクエストでセッション ID を渡しましたか? 私が誤解していなければ、あなたはこのようなものを呼んでいます:

$.ajax({ 'url' : 'http://something', ... })

次の場所に「データ」セクションを追加する必要があります。

sessionIdVariable=現在のセッション ID

于 2012-11-26T17:51:46.280 に答える