define( "ONE_DAY_SEC", 24 * 3600 );
// 日付けの差分をとる関数
function dateDiff( $date1, $date2 ) {
return ( strtotime( $date1 ) - strtotime( $date2 ) ) / ONE_DAY_SEC;
}
// 実行サンプル
$date1 = date('Y/m/d…
Zencat のセッション管理については、「Zencart : セッションについて」で触れていますので、基本的な説明はそちらでご確認ください。
共用SSLを利用する場合のセッション管理についてですが、共用SSLを利用する場合は、基本的に自分の運用するドメインとSSLページは違うドメイン(サーバ会社のドメインなど)になることが多いと思います。
その場合は、ブラウザのクッキーに保存されているSSLページと非SSLページでのドメインが違うことになるので、セッションが正常に引き継げなくなり、カートが空になるなどの現象が起こります。
Zencartのインストール直後の設定は、管理画面内の「セッション管理の設定」>「クッキーの使用の設定」がTrueになっていたと思います。
この環境では、ブラウザのクッキーの使用が必須となってしまうので、共用SSLでクッキーに保存されたドメインが異なる場合は、当然、セッションが引き継げなくなりますし、もちろんブラウザがクッキーの使用を許可していない場合もセッションは引き継げません。
共用SSLでクッキー内のドメインが違う場合でもセッションを引き継ぐ方法として、管理画面内の「クッキーの使用」をFalseにすることでZencartが共用SSLの環境で使えるようになります。また、これは、クッキーを一切使用しないというのではなく、クッキーが使用できる場合は利用し、そうでない場合はURLにzenidとしてセッション情報を付与し、セッションを引き継がせることが出来るようになります。
管理画面の説明を見るだけでは、少し勘違いしやすい点ですが、
- 「クッキーの使用」=True > ブラウザのクッキーの使用が必須。
- 「クッキーの使用」=False > ブラウザのクッキーは必須ではなく、利用できるときは使い、そうでない場合はURLにzenidを付与しセッション管理を継続する。
graffiti on the web
この投稿へのコメント