1.1 からアップグレードしたばかりの CakePHP 1.2 ビルドがあります。残念ながら、セッションは正しく機能していません。
私はスタックオーバーフローの他のスレッドに何時間も費やし、提供されたソリューションを試しましたが、これまでのところ何も機能していません。
ユーザーが accounts/login でログインすると、次のように accounts_controller.php でセッションを設定します。
$this->Session->write('Account', $someone['Account']);
print_r($this->Session->read());
$this->redirect("/accounts/profile");
exit;
読み取りにはすべての正しいセッション情報が表示されるため、セッションは確実に保存されます。ただし、/profile にリダイレクトされるとすぐに、すべてがなくなります。
function profile() {
print_r($this->Session->Read());
これの出力は次のとおりです。
Array ( [Config] => Array ( [userAgent] => [time] => 1376738563 [timeout] => 10 ) )
Cake のセキュリティ レベルをコアで低く設定しましたが、それでも機能しません。
Configure::write('Security.level', 'low');
私の問題は本質的にこれと同じです: リダイレクト後に Cakephp セッションが破棄されます
しかし、セッションが保存されていることは確かです (確認のために、ハードディスク上のセッション ファイルを開きました)。そして、その問題に対する他の解決策はありませんでした。
このスレッドも非常に役立つことがわかりましたが、そこに示されている解決策もうまくいきませんでした: cakephp lost session variable when redirect
私はphp.iniの設定にあまり熟練していません。非常に単純なことを見逃した可能性がありますが、髪を引き抜こうとしています。私が見逃している可能性のあるものについての手がかりを教えてもらえますか?
私の php.ini ファイルと core.php ケーキ ファイルを掲載していただけると幸いです。
関連するコア設定は次のとおりです。
Configure::write('Session.save', 'cake'); //I have tried 'php' also
Configure::write('Session.cookie', 'CAKEPHP');
Configure::write('Session.timeout', '120');
Configure::write('Session.start', true);
Configure::write('Session.checkAgent', false);
Configure::write('Security.level', 'low');
このスレッドを読んだ後、以下にこれらを追加しました: cakephp lost session variable when redirect It did not work before or after. :)
Configure::write('Security.cookie', 'cakephpfdebackend');
Configure::write('Session.cookieTimeout', 10000);
Configure::write('Session.cookie_secure',false);
Configure::write('Session.referer_check' ,false);
Configure::write('Session.defaults', 'php');
私のブラウザでは Cookie が有効になっており、Firefox と Chrome の両方を試しました。現在、ローカルホストで作業しているため、すべてのファイルに完全にアクセスできます。必要な質問をしてください - 私は絶望的です。
編集: 自分のサイトをライブ サーバーにプッシュすることができました。そこでは、そのサーバー上の他のサイトですべてが機能することがわかっていました。そして、私のサイトはそのサーバーで問題なく動作します。これにより、問題が私のコンピューター/Apache/php の設定にあることが確認されます。