2009-07-14 6 views
0

cakephpのSession-> writeメソッドに問題があります。cakephpセッション - > Linuxで問題を書く

$ _SESSION ['..']のような値を設定すると、それを読み取ることができます。しかし、私がwriteメソッドを使うとうまくいきません。

私の問題は、ここでは同じである:http://www.nabble.com/Session-problem-td16684956.html

同じコードは、Windowsで働いていたが、私は、Linuxに移動した後、それが働いていません。

許可の問題が原因ですか? (しかし、私はケーキアプリディレクトリのために完全にrw権限を与えています)。

コードサンプル:リンクで:http://www.nabble.com/Session-problem-td16684956.html

  • 設定::書き込み( 'Session.save'、 'PHP');
  • Configure :: write( 'Session.cookie'、 'C​​AKEPHP');
  • Configure :: write( 'Session.start'、true);
  • Configure :: write( 'Session.checkAgent'、false);
  • Configure :: write( 'Security.level'、 'medium');

ケーキバージョン:それはあなたではありません確実にする1.2.3.8166

+0

コードサンプルとセッションの設定は素晴らしいです。CakePHPバージョンもあります。 –

+0

コードサンプル:リンクと同じ:http://www.nabble.com/Session-problem-td16684956.html Configure :: write( 'Session.save'、 'php'); Configure :: write( 'Session.cookie'、 'C​​AKEPHP'); Configure :: write( 'Session.start'、true); Configure :: write( 'Session.checkAgent'、false); Configure :: write( 'Security.level'、 'medium'); ケーキバージョン:1.2.3.8166 – Prabu

答えて

2

いくつかのステップ:

  • キャッシュをクリアあなたの/アプリ/ tmpに
  • チェックし、あなたの/アプリ/ということを再確認tmpは再帰的に書き込みが可能です(内部のすべてのフォルダのdrwxrwxrwxを意味します)
  • Firebugを使用してセッションクッキーを確認してください。恐らく何かが間違っています

最後に、あなたのデータベースにsession persistenceを移動してみてください(Session.save参照)。これをテストするだけで、あなたは何を見つけるのか分かりません。

これらのすべてを試してみるとよいでしょう。

-1

Prabu、

私は設定::書き込みを疑いながら()の呼び出しは時々正しくセッション情報を設定します(少なくとも、それに見えるそれのようなかもしれない仕事)、CakeWay別名ケーキ大会( )は、セッションヘルパーを使用することです。私はそれがデフォルトですべてのCakeコントローラに含まれていると信じています。いない場合、あなたはいつものようなあなたのコントローラを宣言することができます。

class UsersController extends AppController { 
... 
var $helpers = array('Session', ...) 
... 
} 

を次に、あなたがセッションに情報を書きたいとき、ちょうど呼び出し:

$this->Session->write('checkAgent', false); 

が値をリードバックするには、以下を使用します。

セッションヘルパーの詳細については
$this->Session->read('checkAgent'); 

http://book.cakephp.org/view/484/Session

+2

セッションコンポーネントとセッションヘルパーを混乱させます。コントローラではセッションコンポーネントが使用され、ビューではセッションヘルパーが使用されます。セッションコンポーネントとセッションヘルパーの両方が自動的にロードされるので、それらを定義する必要はありません。 – dhofstet

0

あなた翔@ CakeBookをチェックしてくださいuldはCache :: readとCache :: writeを使用しようとします。

if (($session = Cache::read('session')) === false) 
{ 
    $session = 'some values'; 
    Cache::write('session', $session); 
} 

まず、Cache :: readを初期化しようとします。 falseを返した場合、Cache :: write はセッションに値を格納するために使用されます。