LoginSignup
0
0

More than 1 year has passed since last update.

【Php】Sessionの学習ノート(2)

Posted at

初めに

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型で表示されます。
スクリーンショット 2021-06-08 6.15.32.png

//cookieを表示
echo '<pre>';
var_dump($_COOKIE);
echo '</pre>'

cookieの場合も連想配列の形で["PHPSESSID"]というキーが自動生成され、値はランダムでstring型の26文字が与えられます。
スクリーンショット 2021-06-08 6.16.05.png
google chromeでcookieの情報を確認することができます。コンテンツのところにcookieの値が入っています。
スクリーンショット 2021-06-08 6.19.37.png

Cookieの削除

生成されたcookieを削除するにはsetcookie()メソッドを使います。setcookie()はcookieの作成時に使われますが、cookieの名前と値を指定し有効期限が切れるようにすればcookieがブラウザー上に残らなくなります。
if文でisset()メソッドを使い、$_COOKIE['PHPSESSID']が存在しない場合にsetcookie()で値を''にし、有効期限を現在の時間からマイナスの値(ここでは1時間)を指定します。

if(isset($_COOKIE['PHPSESSID'])){
  setcookie('PHPSESSID', '', time() - 3600, '/');
}

スクリーンショット 2021-06-08 7.08.36.png

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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0