SSL を有効化すると会員のログイン状態がおかしくなる

SSLページにうまくセッションが渡せていないために起こる現象です。セッションが正常に渡せないと、非SSLとSSLページ間で会員のログイン状態や、商品を投入したカートページの状況などの整合性が取れなくなってしまいます。また、一部のサーバーではSSLでの環境変数取得に制限をかけているため整合性が取れなくなります。

要因として次のことが挙げられます。

要因対処
SSLでのサーバー固有の環境変数取得制限

Xrea、Coreserverでは、SSL時に$_SERVER[‘REMOTE_ADDR’]の取得ができません。代替として$_SERVER[‘HTTP_X_FORWARDED_FOR’]が用意されているようです。この様なサーバーでセッションの整合性を保つには以下の様にしてフィルターの適用が必要になります。

add_filter('usces_sessid_force', 'my_sessid_force');
function my_sessid_force( $notuse ){
	if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
		return $_SERVER['HTTP_X_FORWARDED_FOR'];
	else
		return $_SERVER['REMOTE_ADDR'];
}