.ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録

.検索

.メインメニュー

.フォーラムメニュー

.オンライン状況
15 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 15

もっと...

.
.リンク集

メイン
   一般的な話題(General)
     認証と継続チェック
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
chinami
投稿日時: 2007-1-21 15:30
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 39
認証と継続チェック
http://cakephp.jp/doc/apbs02.html
このページを参考に認証の仕組みの勉強をしています。
まねてやっているつもりなのですが、うまくいきません。

users_controller.phpの中の
$this->Session->write('User', $someone['User']);
ここまではうまく行っているようです。
このすぐ後の段階では
$this->Session->check('User')は1になっていました。

ところが、redirectしたあと、
//認証チェック
$this->checkSession();
これで呼ばれた後のapp_controller.phpで
if (!$this->Session->check('User'))
ここではじかれているようです。
このすぐ手前で$this->Session->check('User')を表示させたところなにも表示されませんでした。

print_r($this->Session->);
とやってみましたが、Userらしきものはなにもはいっていませんでした。

どこがおかしいのでしょうか??
宜しくお願いします。



shun
投稿日時: 2007-1-22 9:37
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 認証と継続チェック
$this->redirect() のあとに、exit();を入れたらどうなるでしょうか?

http://cakebaker.wordpress.com/2006/08/28/dont-forget-to-exit-after-a-redirect/

あと、このあたりに似た事例はないでしょうか……。

http://groups-beta.google.com/group/cake-php/search?q=session+redirect&start=0

時間ができたら、私も試してみます。
chinami
投稿日時: 2007-1-22 13:09
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 39
Re: 認証と継続チェック
いつもありがとうございます。

参考にさせていただきながらやってみたところ、
どうやらphpのセッション自体が怪しいという
お恥ずかしい話なような気がしてきました。

phpの設定から確認してみます。
adonishi
投稿日時: 2007-1-22 13:38
Baker スタート
登録日: 2007-1-22
居住地:
投稿: 2
Re: 認証と継続チェック
僕も先日、同じような問題に出くわしたのですが、apacheのDocumentRoot の設定を、間違えて/path_to_cake_install/app/webroot でなく、/path_to_cake_install/app にしてしまっていたのが原因でした。

それでも一応、大まかには動いてはいたのですが、セッションのパスが/webrootに設定されてしまい、redirectしたあとの/ではそのセッションが有効にならなかったため、この問題が起こったのでした。

みなさん、こんな初歩的な間違えなどなさらないかもしれませんが、ご参考まで、、、
chinami
投稿日時: 2007-1-28 11:17
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 39
Re: 認証と継続チェック
他のPHPスクリプトで試して問題ない設定にまでなりましたが、
やはりcake上で実行するとセッションが持ち回りされていないようですね。
exit();も試してみましたが。

ディレクトリは、ルートではなくその下に設置しています。
それでおかしくなるってこともありえるのかな??

う〜〜ん。

1.2を使っているのが関係あるのかな。

shun
投稿日時: 2007-1-28 19:10
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 認証と継続チェック
問題が切り分けられるとよいですね。

1)var_dump($_SESSION)で何が出力されるでしょうか?

2)Sessionを使用しているほかのCakePHPアプリケーションは動いたでしょうか?

3)cakeフォルダを1.1のcakeに入れ替えたら動きますか?
chinami
投稿日時: 2007-1-28 19:51
Baker ユーザ
登録日: 2007-1-1
居住地:
投稿: 39
Re: 認証と継続チェック
いつもお返事ありがとうございます。


順番に試して見ます。

1)1)var_dump($_SESSION)で何が出力されるでしょうか?

array(1) { ["Config"]=> array(3) { ["rand"]=> int(71669918) ["time"]=> int(1169982238) ["userAgent"]=> string(32) "9e68c2d9b4737a05a62abec3e534d1d0" } }

どうやらやはりセッションがうまく持ちまわっていないようですね・・。

2) 他のアプリケーションまでまだ手を出しておらず、
ちょっと探してみます。

以上途中経過まで。
adonishi
投稿日時: 2007-1-29 16:41
Baker スタート
登録日: 2007-1-22
居住地:
投稿: 2
Re: 認証と継続チェック
引用:

ディレクトリは、ルートではなくその下に設置しています。
それでおかしくなるってこともありえるのかな??

もし、パスの問題を確認したい場合には、クッキーマネージャー等で覗いてみるとすぐ分かります。(すみません、上でセッションのパスと書いたのは、正確にはクッキーのパスでした。)

Firefoxだと、「ツール」>「オプション」>「プライバシー」>「Cookieを表示...」にクッキーマネージャーがあります。

fjmoto
投稿日時: 2007-4-17 17:39
Baker スタート
登録日: 2006-10-23
居住地:
投稿: 2
Re: 認証と継続チェック
Redirectとは関係ないかもしれませんが。

特定の処理を行うと、ApacheのHTTP ResponseにSet-Cookieが2回発行されていて、
Set-Cookie: CAKEPHP=4a7b75bdc524d7a4c5616c8f7a9999b1; path=/
Set-Cookie: CAKEPHP=ff659f6bb61d326c4a37420e47b4e6d3; path=/

それぞれセッションファイルをチェックすると
# cat sess_4a7b75bdc524d7a4c5616c8f7a9999b1
Config|a:3:{s:4:"rand";i:1845876775;s:4:"time";i:1176801086;s:9:"userAgent";s:32:"21eb51eeb10a8877e4439839a8441239";}User|a:7:{s:2:"id";s:5:"2929";s:7:"link_id";s:7:"id005";s:5:"email";s:20:"XXXXXXXX@XXXX.jp";s:12:"commentcount";s:1:"1";s:9:"available";s:1:"1";s:5:"blist";s:1:"0";s:7:"updated";s:19:"2007-01-17 16:59:14";} (User情報あり)
# cat sess_ff659f6bb61d326c4a37420e47b4e6d3
Config|a:3:{s:4:"rand";i:600446316;s:4:"time";i:1176801087;s:9:"userAgent";s:32:"21eb51eeb10a8877e4439839a8441239";} (User情報なし)

となっており、後者のSet-Cookieが生き残る為にSessionが切れる、という現象が確認できました。

残念ながら、まだ原因は掴めていませんが、解法の一助になれば幸いです。
shun
投稿日時: 2007-4-17 18:31
Cake 職人
登録日: 2006-7-14
居住地: 東京、日本
投稿: 1007
Re: 認証と継続チェック
ここは違うでしょうか……。

セッションまわりの挙動がおかしい?時
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=410&forum=3&post_id=730#forumpost730
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 


. .