3


0

私はZendと一緒に起こっているもう一つの変な迷惑なことをしています。

基本的に、ユーザードメインを作成した後に私は次のコードを持っています:

$ this-> auth = Zend_Auth :: getInstance(); $ this-> view-> user = $ this-> user = $ this-> auth-> getIdentity(); $ this-> user-> idSite = $ idSite; $ this-> user-> urlSite = $ urlSite; $ this-> auth-> getStorage() - > write($ this-> user);

非常に不愉快なのは、auth→ getIdentity()がその直後になったことです。

[idSite]
=> 0
[urlSite]
=>

したがって、ここからはさらに悪くなります。フォームを更新するか、フォームの他のパラメータのいずれかが失敗して同じフォームに送信した場合、上のスクリプトを修正せずにauth-getIdentity()は正しく戻ります。

[idSite]
=> 2431
[urlSite]
=> exampledomain

これは、コードが正しく機能していることを意味します。ただし、フォームが正しく入力されてすべてがうまく表示された場合は、次のステップにリダイレクトします。$ this - > _ redirect( 'nextstep') 。

どうしてこれなの? どうして?

2 Answer


3


私は同じ問題を抱えていたので、セッション名前空間機能を使用するルートを経由するほうがよいと思います。

$ oSession = new Zend_Session_Namespace( 'myStorage'); $ oSession-> foo = "bar"; $ oSession-> baz = 123;

そして、あなたはデータを回復することができます:

$ oSession = new Zend_Session_Namespace( 'myStorage'); $ this-> view-> foo = $ oSession-> foo;

ここにさらに手がかりがあります。データは実際には単なる名前空間です。

これへのデフォルトアクセスは次のようになります。

$ oSession = new Zend_Session_Namespace( 'Zend_Auth');


1


Zend_Authがストレージに書き込んでいないのも問題でした。 しかし、Ian Lewisによる回答とあなたの回答を見た後、私はそれがおそらくOKと書いていたが読んでいなかったことに気づいた。 私は以前、自分のセッションの 'name’設定を自分の名前空間に変更していました。 これを削除してデフォルトの設定をもう一度使い始めると、Zend_Authは問題なく動作しました。