2011-03-23 3 views
1

私はZendフレームワークのインスタンスを古典的なコードに結びつけようとするのは楽しいことではありません。これは、データのヒープを取り込み、検証し、処理した後、電子メールでWebサイトの所有者に送信するマルチページ形式です。私の仕事はZFにそのデータを取得して、データベースに自動処理することです。私はPOSTを使用することはできません。私はJavascriptを使用しているとは思わないので、自動送信フォームを使用しないようにしたいと思っています。痛いほど扱いにくいです。Zend Frameworkが既存のセッションを消去しないようにするにはどうすればよいですか?

私の希望は、既存のフォームプロセッサからセッションを使用してZFにデータを取得することでした。データは既にフォームプロセッサーのセッションにあります。最初は、ZFインスタンス(メインWebサイトのサブディレクトリ内にある)にリダイレクトするのは簡単なことだと思いました。それは同じドメインです、同じセッションでなければなりません、そうですか?

ZFがセッションを処理する方法については、古いセッションデータが完全に完全に消去されます。それはちょうどなくなった。

また、ZFは既存のセッションを消去するような方法でセッションを処理しますか、これは流行ですか?これが流行でない場合、どのように私はそれを迂回することができますか?それがあれば、それを引き起こしているかもしれません/どうすれば修正できますか?

編集

私は、データベースバックアップされたセッションのためZend_Session_SaveHandler_DbTableを使用しています。これはapplication.iniで初期化されています。ここでは、初期化コードされています。私はセッションを使用しています

resources.session.saveHandler.class = "Zend_Session_SaveHandler_DbTable" 
resources.session.saveHandler.options.name = "Sessions" 
resources.session.saveHandler.options.primary = "sessionID" 
resources.session.saveHandler.options.modifiedColumn = "lastModifiedTime" 
resources.session.saveHandler.options.dataColumn = "data" 
resources.session.saveHandler.options.lifetimeColumn = "lifetime" 

は、私がsession_start()を呼び出して試してみましたが、それはエラーを作成します。おそらく、セーブハンドラコードが既にセッションを初期化しているか、後でそのセッションが初期化されている可能性があります。 $_SESSION変数に直接アクセスしようとすると、未設定の変数にアクセスしようとしたことを示すエラーが出る可能性があります。最初にZend_Session_Namespaceを作成してから$_SESSIONにアクセスしようとすると、空のセッションが発生します。

+3

必ずしも同じセッション番号である必要はありません。 Zend_Sessionの使い方によって異なります。名前空間(Zend_Session_Namespace)を使用していますか?カスタムIDまたは自動生成IDそれはいくつかのコードを参照するのに役立ちます。 – netcoder

+0

あなたがチェックできるのであれば、データはZFアプリからは見えないのですか、それとも両方から削除されていますか? – Phil

+0

@netcoder要求に応じて詳細を追加するように編集されました。 –

答えて

1

ファイルシステムの代わりにデータベースにセッションを保存するようにZFが設定されているため、のZFブートストラップコードを使用しないスクリプトを使用するとセッションが失敗します。 (たとえそうであっても、2つの全く異なるセッションクッキー名を使用することもできます...)

ZFビットが新しいであることを暗示しているので、解決方法は簡単です。ZFのセッションビット今のところ。これは、データベーステーブルの節約、名前空間ハンドラなし、何もないことを意味します。生の$_SESSIONスーパーグローバルで作業し、レガシーコードと同じセッション設定を使用します。これは、両方のアプリケーションが同じセッションデータにアクセスして、レガシーコードを変更することなく、を確認する唯一の方法です。

関連する問題