返信先: 会員ログイン情報を記憶時の長さ変更について

2016 年 2 月 1 日

ホーム フォーラム 使い方全般 会員ログイン情報を記憶時の長さ変更について 返信先: 会員ログイン情報を記憶時の長さ変更について

#77183

xd
参加者

対応有難うございます。

ところで、Cookieの有効期限なのですが、マイページログイン時に情報を記憶しているのですが、ブラウザを閉じて、もう一度開くとログアウトしています。

Cookieに有効期限を設けない場合はクッキーの有効期限がブラウザを閉じるまでだと思うのですが、コード的に有効期限が指定されているにも係わらず、ブラウザを閉じるとCookieがなくなっているのはなにが原因なのでしょうか。

——————————————-
WordPress のバージョン:4.4.1
Welcart のバージョン:1.6.6.1512212
ご利用のテーマ:オリジナル
症状を確認したブラウザ:Chrome,Firefox
サーバー(会社名、サービス名):wpx
SSLの利用: なし
WordPress のパーマリンク設定:カスタム /%category%/%post_id%/
——————————————–

試しにfunctions.phpに以下のコードを追加して調べてみました。

add_filter( 'usces_filter_member_login', 'WELCART_MEMBER_LOGIN' , 1 );
function WELCART_MEMBER_LOGIN( $member )
{
	//Cookieを取得する
	$values = isset($_COOKIE['usces_cookie']) ? unserialize(stripslashes($_COOKIE['usces_cookie'])) : NULL;

	$values['test'] = date( 'Y-m-d H:i:s' , time() );

	//中身をシリアライズする
	$value = serialize( $values );

	//1年間有効
	$timeout = time() + 365 * 86400;

	$domain = $_SERVER[ 'SERVER_NAME' ];

	//クッキーをセットする
	$res = setcookie( 'usces_cookie' , $value, $timeout , USCES_COOKIEPATH , $domain );

var_dump($values);

	return $member;
}

Cookieの有効期限を一年間にし、「test」というキーを独自に追加して現在の時刻をCookieに加えました。
ログイン後に$_COOKIE[‘usces_cookie’]でCookieの中身を調べると現在時刻が追加されています。

その後、「test」というキーの行はコメントアウトして、Cookieの現在時刻が更新されないようにしました。

一回ブラウザを閉じてログイン情報が記憶されている前提で、マイページやログイン条件判定を試すと、ログインしていないことになります。

再度ログインページを開いてログインすると独自に追加した「test」というキーとさきほどの現在時刻は変わっていません。Cookieには有効期限が設定されているようです。

そこで推測されるのが、セッションが切れるとログイン情報も一緒になくなるのではないか? ということです。
カートの中身はブラウザを閉じてなくなってもいいのですが、ログイン状態については維持したいと考えています。
アドバイスお願いします。