ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Let's PHPコミュのOpenPne設置に関して

  • mixiチェック
  • このエントリーをはてなブックマークに追加
皆さん
こんにちは。
OpenPne設置に関する質問です。
OpenPne設置することが多いですが、今回下記のような問題が発生しました。
ブラウザを開いて、一回目ログインすると、ログインメールとパスワードが正しかったのにマイページに転送されず、ログインページのまま、メールとパスワード欄は空になり、もう一度ログインすると正常にマイページに転送されます。
IE7とFirefox 1.5.0.12 で両方この現象が起こっています。
複数PCでテストしましたが、ほとんど問題を再現できます。
問題はheader の関数がうまく動作できない気がしますが、解決方法がまだ見つかっていません。
サーバーとPHP情報は以下となります。
PHP Version 4.3.9
Linux 2.6.9
Apache 2.0
何方が分かりましたら、教えて頂ければ嬉しいです。
よろしくお願いいたします。

コメント(12)

例えばですが、
OpenPNEの設置URL(initだとかで設定だったかな?)をグローバルIPで設定しておき、
ログイン用のページをローカルIPで指定してアクセスみたいなことをすると、
ローカルIPのURLからグローバルIPのURLに飛ばされて再度ログインが必要になったりします(セッションの問題)

例:
最初にブラウザでhttp://192.168.1.2/openpne/のようなアドレスにアクセスしログイン画面から正しいIDとパスワードを入力してログインしようとする。

http://グローバルIP/openpne/に飛ばされて再度ログインしようとすると正常にログインできる。


>複数PCでテストしましたが、ほとんど問題を再現できます。
セッションクッキーを毎回削除したとして、
100%ではなく正常にログインできることもあるのでしょうか?
たくさんの設置URL(IP)と同様の問題で、ログインページのURLとマイページのURLはどうなっていますか?サブドメインを使っていたりしてCookieが無効になってませんか?

#多分2回目のログインページのURLが本来のURLという可能性が・・

それ以外だと、Cookieの書き出しとマイページへの遷移のタイミングでおかしくなっているのかもしれませんが、OpenPNEあたりでそういう間違いもなさそうだし・・。ただし皆無とはいえないのでHTTPリクエスト/レスポンスを確認する必要はあると思います(マイページへの遷移時にCookieを送っているかどうか)。
http://mixi.jp/view_community.pl?id=58706
OpenPNEのコミュニティがあるので、そちらで聞いた方が早いかもしれませんね。
私も自宅のサーバに展開してみましたところ、同じ現象がありましたが、稼動させるわけでもないので放置してました。
あちこち見てみましたところ、この現象は昔からあるようですね。原因はしりませんが。
(BUGでしょ?ってみんさんいってるようですが)
というわけで、おせっかいでした。
皆さん
お返事有難うございます。
本番サーバーだけ設置しますので、一回目と二回目のログイン画面のURLが同じです。
ログインページのURLと舞いページのURLも同じです。
>>shimix さん
マイページへの遷移時にCookieを送っているかどうかチェック仕方を教えて頂けませんか?
よろしくお願いいたします。
>5

一例:FireFoxにアドオンを入れて確認する
二例:パケットをモニタする
>5

>6に追加して・・IEならieHTTPHeadersをインストールする。

http://www.forest.impress.co.jp/article/2005/02/17/iehttp.html
>6に補足して
一例:Tamper Dataというアドオンがお勧め
二例:WireSharkがお勧め
皆さん
お返事有難うございます。
OPENPNEのソースコードを調べるとwebapp\lib\OpenPNE\Auth.phpのlogin関数で
setcookie(session_name(), session_id(), $expire, $this->cookie_path);
第一回のログインは必ず失敗するらしいです。
php.iniでどう設定すれば問題を解決できるでしょうか?
何方が分かれば教えて頂ければ嬉しいです。
よろしくお願いいたします。
>ファンさん

自分も似たような問題に直面した気が。
session.save_path をデフォルトの /tmp ではなく、
SNS専用ディレクトリを作る事で解決した覚えがあります。
(/tmp/sns等)
>WireShark

へ〜こんなのもあるんだーと見たら、
いつの間にかEtherealから名前変わって居るんですね。

あちきもLinux+X環境でEtherealでキャプチャしてます。
>aki
お返事有難うございます。
session.save_path SNS専用ディレクトリを作りましたが、ちゃんとこのフォルダーにセッションが生成されますが、問題を解決できません。
セッションをDBに保存しても解決できません。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Let's PHP 更新情報

Let's PHPのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング