[Tep-j-general] Re: クッキーのタイミング

アーカイブの一覧に戻る

田中裕之@グリニッジ tanak****@green*****
2005年 10月 6日 (木) 13:28:58 JST


スズキさん、はまださん、こんにちは。

グリニッジの田中です。

私も、別件でadmin側と、catalog側でのセッション周りの差異、
そして、MS2との違いをチェックしていたのですが、いくつか気が
ついたことがありました。

まず、

admin/includes/application_top.php 171行目〜

// lets start our session
  tep_session_start();
  if (function_exists('session_set_cookie_params')) {
    session_set_cookie_params(0, substr(DIR_WS_ADMIN, 0, -1));
  }

というところですが、本来であれば、セッションをスタートする前に
session_set_cookie_paramsを呼び出す必要があるので、以下の形が
正しいのではと思います。

// lets start our session
  if (function_exists('session_set_cookie_params')) {
    session_set_cookie_params(0, substr(DIR_WS_ADMIN, 0, -1));
  }
  tep_session_start();

また、MS2ではsession_set_cookie_params部分は、以下の形になって
おりました。

    session_set_cookie_params(0, DIR_WS_ADMIN);

なぜ末尾の/を切り落とす必要があるのか分かりませんが、
MS2に倣う形で問題がないのではないのかなと思います。

これに合わせて、catalog側も調整し、以下の形で動作確認中です。

-----

catalog/includes/application_top.php 217行目〜

// lets start our session
  if (isset($HTTP_POST_VARS[tep_session_name()])) {
    tep_session_id($HTTP_POST_VARS[tep_session_name()]);
  } elseif ( (getenv('HTTPS') == 'on') && isset($HTTP_GET_VARS[tep_session_name()]) ) {
    tep_session_id($HTTP_GET_VARS[tep_session_name()]);
  }

  if (function_exists('session_set_cookie_params')) {
    session_set_cookie_params(0, DIR_WS_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();


当方でも、サーバー環境によって、URLにセッションIDが付いて回る現象が
起きていた場合があったのですが、上記に変更して改善されたようです。


蛇足ですが、html_output.phpのtep_href_linkにて、SSL指定のURL生成では
必ずURLにセッションIDを付けるなっているようですが、これが正しい仕様
なのか悩んでいます。
httpからhttps(またはその逆)に切り換る際にURLにセッションIDをつけて
さえあげるれば済むと思うのですが。MS2でもこのように変更されているよ
うです。


+------------------------------------------+
 Hiroyuki Tanaka <tanak****@green*****>
 http://www.greenwich.co.jp/
+------------------------------------------+




Tep-j-general メーリングリストの案内
アーカイブの一覧に戻る