tanaka
iza00****@nifty*****
2005年 10月 20日 (木) 18:00:29 JST
いつもお世話になっております。tanakaです。 ずいぶん間が空いてしまいましたが、以前質問させていただいた下記の件で、 まだ状況が変わらないままなので、質問させてください。 http://lists.sourceforge.jp/pipermail/tep-j-general/2005-September/016433.html hamada様に教えていただいた下記方法を試し、 > <?php > session_start(); > > session_register("count"); > > echo $count . "<br>\n"; > echo session_id() . "<br><br>\n"; > > $count++; > > echo '<a href="' . basename($_SERVER['PHP_SELF']) . '">Count</a><br>' . > "\n"; > > ?> > ↑こっちのほうがより直接的かも。「Count」クリックでちゃんとカウントアッ > プしてます?&セッションIDは一意ですか?? 9 e27bac7142537e0ba9014487483bd094 Count ↑このような結果がで、カウントアップもされ、セッションIDも一意あることを確認しました。 (cookieを無効に設定した場合は、カウントアップもしませんし、セッションIDも変わります。) > ・session.use_cookies > ・session.cookie_domain > に、特に注意を払うべきかと思います。 session.use_cookies on session.cookie_domain novalue でした。 > osCのコードは弄られてないですか? /functions、/classesの両session.phpあ > たりから、ファイルをいじり壊してないかチェックしてくってな作業も必要にな > るかもしれません。 /functions、/classesの両session.phpはなにもいじっていませんでした。 また、下記のsuzuki様の状況にも似ていたのと、 (似ていた・・というのは、知識不足のため、全く同じなのかどうかは判断が付きませんでした。) 別のスレッドで、同じサーバーというのがわかったので、安易ですが同じかも!と 下記のスレッドを追っていき、 http://lists.sourceforge.jp/pipermail/tep-j-general/2005-October/016444.html > session_set_cookie_params(0, DIR_WS_CATALOG); > このように設定するのがベストなのですね!! > この部分は上記のとおりに変更致しました。 > ただ、残念ながら当方の環境では、URLはついて回ります。 > 色々、サーバー側の設定を変えていたら、php.iniの > session.use_only_cookies を"On"にしたら、 > クッキーのみに格納されるようになりました。 > もちろんクッキーのない環境ではURLにセッションが付きます 上記と同じくcatalog/incude/application_top.phpを変更し 共用サーバーなので、.htaccessをつかって、session.use_only_cookies を"On"に しました。 ためしにadminへの設定もしてみたのですが、やはりcookieが発行されなくなったようで、 管理画面から先へ進もうとすると、管理画面の「ログイン画面」に戻るようになってしまいましたので catalogだけの変更にしました。 > admin/includes/application_top.php 171行目〜 > > // lets start our session > if (function_exists('session_set_cookie_params')) > { > session_set_cookie_params(0, DIR_WS_ADMIN); > } > tep_session_start(); > admin側に関しては当方の環境ではセッションは格納されて > いたのですが、上記の設定にしたら逆に、クッキーが発行 > されなくなってしまいました。 今の状況は、 ■「catalog」 cookieの受け入れをしてもしなくても、(有効無効にかかわらず) 1)セッション部分を削除してリロードすると、リンク先のセッションが消え、 cookieで引き継いでいる。 2)ログイン画面(https://)でセッションIDが表示され、 3)ログインすると新しいセッションIDになり、 4)その後http://の画面に戻ってもセッションIDは付いたままになります。 (かごの中身がなくなるというようなことはありません。) ■「admin」は、cookieを無効にすると、管理画面から先へ進めません。 (ログイン画面へ戻ってしまいます。) session.use_only_cookies を"On"にしているのだから、adminの動きが正常ですよね? catalogがおかしくなっている・・のはわかるのですが。 次はどこをチェックしたらよいのでしょうか? 上記のsuzuki様とhamada様のやり取りのあったスレッドの中に hamada様の >PHP的には“セッションcookieが適切にセットされてない” >ということではないかと。 >つまりPHPはcookieを読み書き出来ていないと思われますので、おそらくは >cookie側になんらかの対策が必要と考えられます。 ↑これなのでしょうか? この場合はどこからチェックしたらよろしいのでしょうか? お手数をかけて申し訳ございませんが、何かヒントでもいただけないでしょうか? 最初に質問させていただいた時は、自分のおかれている状況の説明も うまく出来ない状態でしたので、 (今も不十分とは思いますが)次の質問が出来ませんでした。 あれから2週間、少しづつですが自分の状況が説明できるようになってきたので、 また教えていただけませんでしょうか? 長々と書いてしまいまして申し訳ございませんでした。 どうぞよろしくお願いします。 tanaka