TAMURA Toshihiko
tamur****@bitsc*****
2004年 9月 23日 (木) 11:50:04 JST
こんにちは、田村です。 山本さん: > > 注文手続き処理(checkout_process.php)が終了して、 > > 注文手続き完了(checkout_success.php)の先頭の以下の部分で > > セッション情報が取得できていない可能性が高いと思います。 > > ------------------------------------------------------------ > > // if the customer is not logged on, redirect them to the shopping cart page > > if (!tep_session_is_registered('customer_id')) { > > tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); > > } > > ------------------------------------------------------------ > > > > 上記部分をコメントアウトして、テストを行ないましたが同じです。 正常なら、「注文手続き処理(checkout_process.php)」の処理が進んで、 その最後で注文メールを送信して、直後に 「注文手続き完了(checkout_success.php)」にリダイレクトされます。 そのときに「カート(shopping_cart.php)」が表示されるというのは、 どこからかリダイレクトされた結果だと思われますので、 スクリプト内でファイル名(shopping_cart.php)を指し示す定数の FILENAME_SHOPPING_CART をスクリプト中から探すのが 原因追求のひとつの方法です。 それで、FILENAME_SHOPPING_CART をふくむファイル一覧を見ると、 最も可能性が高いのが checkout_success.php の先頭部分だと考えたのが 昨日のメールなんですね。 それが原因でないとすると、追求が難しいんですが、 例えば、catalog/includes/general.php の tep_redirect() の header() の直前でログを記録すれば、 最後にリダイレクトを実行したスクリプトを記録できます。 (残念ながらインクルードファイル名は特定できないですが。) ------------------------------------------------------------ function tep_redirect($url) { (略) // ログに記録する error_log('redirect ' . strftime(STORE_PARSE_DATE_TIME_FORMAT) . ' ' . $_SERVER['PHP_SELF'] . "\n", 3, STORE_PAGE_PARSE_TIME_LOG); header('Location: ' . $url); tep_exit(); } ------------------------------------------------------------ * ログが記録されるファイルは、管理画面の[ログ表示/記録]で [ログの格納先]で指定できます。 ログにはapacheの書き込み権限も必要です。 正常なら、ログは次のような行で終わっているはずです。 ------------------------------------------------------------ redirect 23/09/2004 11:31:55 /catalog/checkout_process.php ------------------------------------------------------------ -- 田村敏彦 / 株式会社ビットスコープ E-mail:tamur****@bitsc***** http://www.bitscope.co.jp/