phpのsetcookieでクッキーを送信・確認・削除・有効期限を設定
php関連記事
phpで10進数と16進数、2進数、8進数の変換と0埋め表記
WordPressの条件分岐タグでページを判別する
PHPでpreg_splitの文字化けを回避しながらテキストを改行ごとに区切ってHTMLメールをつくる
WordPressテーマアップロード時に「辿ったリンクは期限が切れています。 もう一度お試しください。」と表示される
PHPで画像アップロード時に比率を保ったまま縮小する
phpで郵便番号を正規表現で3桁・ハイフン・4桁で出力するfunction
phpで電話番号のハイフンを正規表現で出力するfunction
【MySQL】無いならINSERT、あるならUPDATEする、ON DUPLICATE KEY UPDATE構文
phpで今日の日付から現在の年度を判別して一覧を作成する方法
php
$cookieName = 'auto_login';//クッキー名 $cookieValue = 'test';//クッキー値 setcookie( $cookieName, $cookieValue);
PHPでクッキーを保存するにはsetcookie()という関数を使います。
上のように、クッキー名とクッキー値を指定するだけで使えます。
php
echo $_COOKIE['auto_login'];
保存したクッキーを読み出すには、$_COOKIE連想配列を使います。
例えば、先ほど “auto_login” で保存したクッキーを読み出すには以下のように行います。
php
$cookieName = 'auto_login';//クッキー名 $cookieValue = 'test';//クッキー値 $cookieExpire = time() + 3600 * 24 * 7; //有効日時 7日間 setcookie( $cookieName, $cookieValue, $cookieExpire);
上の例で保存したクッキーはブラウザを閉じると消えてしまいます。
クッキーを次回同じサイトを訪れる時まで有効にするには、クッキー保存時に有効期限を設定する必要があります。
有効期限はUNIXタイムで指定します。
UNIXタイムは秒単位で、現在のUNIXタイムは time() 関数で取得できます。
100秒間、有効にするならば time() + 100
とします。
ここでは有効期限を3600秒 * 24時間 * 7で、7日後を指定しています。
php
if(setcookie( $cookieName, $cookieValue, $cookieExpire, $cookiePath, $cookieDomain )){ //成功 }else{ //失敗 }
setcookie() が正常に実行されると、true を返します。
ただし、この関数では、ユーザーがクッキーを受け入れたかどうかを判断することはできません。
php
$cookieName = 'auto_login';//クッキー名 $cookieValue = 'test';//クッキー値 $cookieExpire = time() - 360; //過去の時間を指定 setcookie( $cookieName, $cookieValue, $cookieExpire);
setcookie関数は、クッキーに情報を設定するための関数ですが、第一引数で「削除するクッキー名」を指定し、第三引数で「現在時刻より過去時間」を渡すことで、指定したクッキーの情報を削除することが可能です。
クッキーの有効期限を引数で渡すところを「過去の時間」を渡すことで、クッキーが有効期限切れの状態となり、削除されるという仕組みです。
「過去の時間」の数値は、現在より過去であればいくつを設定しても削除されます。
php
$cookieName = 'auto_login';//クッキー名 $cookieValue = 'test';//クッキー値 $cookieExpire = time() + 3600 * 24 * 7; //有効日時 7日間 $cookiePath = '/';//パス $cookieDomain = $_SERVER['SERVER_NAME'];//ドメイン $cookieSecure = true;//SSL $cookieHttponly = false;//HTTPからのみ setcookie( $cookieName, $cookieValue, $cookieExpire, $cookiePath, $cookieDomain, $cookieSecure, $cookieHttponly );
path
サーバー上のクッキーを有効とするパスを指定します。
「/」とした場合、ドメイン以下すべてでクッキーが有効になります。
「/dir/」とした場合、 dir ディレクトリ以下すべてで有効になります。
domain
クッキーを有効とするドメイン(domain)を指定します。
このドメイン配下のときのみ、クライアントへクッキーが送信されます。
secure
SSLの有無の設定。
「TRUE」にするとクライアントからHTTPS接続されたときのみクライアントへクッキーが送信されるようになります。
デフォルトでは「FALSE」です。
httponly
HTTPからのみ接続を有効とする指定です。
「TRUE」にするとHTTPを通してのみクライアントのクッキーにアクセスできるようになります。
XSS 攻撃対策でjavascriptからはアクセスできません。
コメント