初めに
Sessionについて学習した内容のoutput用記事です。
※内容に間違いなどがある場合はご指摘をよろしくお願いします。
※こちらの記事はあくまでも個人で学習した内容のoutputとしての記事になります。
前回の記事:
https://qiita.com/redrabbit1104/items/88ed159ba107aeb54dac
SessionとCookie
session_start()を使うとsessionが生成されると同時にcookieも生成されます。
session_start();
$_SESSION['date'] = date('c');
echo $_SESSION['date'];
echo '<br>';
//sessionを表示
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';
$_SESSION['date']の値が25文字のstring型で表示されます。
//cookieを表示
echo '<pre>';
var_dump($_COOKIE);
echo '</pre>'
cookieの場合も連想配列の形で["PHPSESSID"]というキーが自動生成され、値はランダムでstring型の26文字が与えられます。
google chromeでcookieの情報を確認することができます。コンテンツのところにcookieの値が入っています。
Cookieの削除
生成されたcookieを削除するにはsetcookie()メソッドを使います。setcookie()はcookieの作成時に使われますが、cookieの名前と値を指定し有効期限が切れるようにすればcookieがブラウザー上に残らなくなります。
if文でisset()メソッドを使い、$_COOKIE['PHPSESSID']が存在しない場合にsetcookie()で値を''にし、有効期限を現在の時間からマイナスの値(ここでは1時間)を指定します。
if(isset($_COOKIE['PHPSESSID'])){
setcookie('PHPSESSID', '', time() - 3600, '/');
}
sessionの破棄
session_destroy()メソッドでsessionに登録されたデータを全て破棄することができます。
session_destroy();
参考サイト
https://www.php.net/manual/ja/features.cookies.php
https://www.php.net/manual/ja/reserved.variables.cookies.php
https://www.php.net/manual/ja/function.setcookie.php
https://www.php.net/manual/ja/function.var-dump.php
https://www.php.net/manual/ja/language.types.declarations.php#language.types.declarations.mixed
https://www.php.net/manual/ja/function.date.php
https://www.php.net/manual/ja/function.session-destroy.php