kazu-h に投稿

ちょっと特殊なケースでのこと。
外部からのアクセスではhttp://server.global.net/catalogでアクセスするようにし
ローカルアクセスではhttp://192.168.x.y/shop/catalogでアクセスするように
configure.phpを調整したのだが、カートに商品が入らなくなってしまった。

最初、いろいろカスタマイズしていたのでそれが原因かもと思いconfigure.php以外
すべてデフォルトに戻したのだが改善しない。
注意してみると、hrefタグにはすべてosCsid=xxxxxが追加されているので、セッション
関連で何か不都合が起こっているらしい。
外部、内部ともに同じサブフォルダへのアクセスとなるケースでは問題が無かった
ので、サブフォルダへのインストールが問題というわけではなさそうだ。

結論としてはconfigure.phpの設定に問題があった。
内部からのアクセスに対してサーバー名を示す定数HTTP_SERVERにサブフォルダ名を
追加するようにスクリプトを組んでいたのだが、カートを示す定数DIR_WS_CATALOGに
サブフォルダを追加するようにしなければいけなかった。
サーバー名が本来のサーバー名と異なるのだからセッションが正しく扱われなくなっても
当然の結果であった。
考えてみれば、内外ともにサブフォルダ配下へのアクセスとなるケースのconfigure.php
ではカートフォルダ名を示す定数にサブフォルダ名が記入されていたのだった。

category