【PHP】Cookie、セッション管理、メール

PHPでCookieやセッション、メールの管理を行う方法について紹介します。

ログインページ(認証画面)

PHPでは、header関数を用いてログインページ(認証画面)を作ることが出来ます。
header関数は、HTTPヘッダをクライアントに送信することができます。


Apacheを起動し、phpファイルにブラウザでアクセスすると認証画面が出てきます。

ユーザー名:fubuki
パスワード:kongo

を入力すると、「ログインに成功しました」と書かれたページにアクセスできます。

【PHP】ログインページ(認証画面)の作り方
この記事では、PHPでログインページ(認証画面)を作る方法とサンプルコードについて紹介します。

【Cokkie】クッキーの管理

Cookie(クッキー)とは、クライアント側(ページ閲覧者)にデータを保存するためのものです。
入力履歴などをクッキーに書き込んでクライアント側に保管してもらうことで、再びページを閲覧したときに、途中まで入力したデータを復元したりできます。

PHPでは、setcookie関数を使うことで、クッキーを作成して、クライアント側へ送信し保存させることができます。

【書式】

setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] )
引数 内容
name クッキーの名前
value クッキーの値
expire クッキーの有効期限
path クッキーの有効パス
domain クッキーの有効ドメイン
secure 1:HTTPS接続のみクッキー送信、0:デフォルト

返り値:TRUE(正常終了)


ページにアクセスしたクライアントに、以下のクッキーを送信して保存させることができました。

クッキー名:'クッキー名'
値:'クッキーの値'
【PHP】Cookieの作成(書込・送信・保存)
この記事では、PHPプログラムでCookie(クッキー)の作成(書き込み・保存・送信)方法とサンプルコードについて紹介します。

$_COOKIEを使うことで、Cookieを読み込んで、保存した値を取得できます。

【書式】

$_COOKIE["クッキー名"]

返り値:指定したクッキー名のCookieに保存された値


【PHP】Cookieの読み込み
この記事では、PHPプログラムでCookie(クッキー)の値を読み込む方法とサンプルコードについて紹介します。

setcookie関数でCookieの作成と削除ができます。

【書式】

setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]] )
引数 内容
name クッキーの名前
value クッキーの値
expire クッキーの有効期限(秒単位)
path クッキーの有効パス
domain クッキーの有効ドメイン
secure 1:HTTPS接続のみクッキー送信、0:デフォルト

返り値:TRUE(正常終了)

【削除】
Cookieを削除する場合は、有効期限をマイナスにします。

例)setcookie(クッキー名, クッキーの値, time() – 3600);


「time() – 3600」で今よりも過去の時刻が有効期限となり、Cookieが削除されます

【PHP】Cookieの有効期限
この記事では、PHPプログラムでCookie(クッキー)の有効期限を設定する方法とサンプルコードについて紹介します。
【PHP】Cookieの削除
この記事では、PHPプログラムでCookie(クッキー)を削除する方法とサンプルコードについて紹介します。

setcookie関数を複数呼び出すことで、Cookieを複数作れます。


ただし、クライアントは1つのサーバから受信できるクッキーの個数は最大20個と決まっています。
その為、多くのクッキーを利用したい場合は、別のやり方を使う必要があります。
多くのクッキーを利用したい場合は、配列を使って書き込みを行います。


【PHP】Cookieを複数作成
この記事では、PHPプログラムで複数のCookie(クッキー)を作成する方法とサンプルコードについて紹介します。
【PHP】Cookieを複数作成(配列)
この記事では、PHPプログラムで複数のCookie(クッキー)を配列を使って作成する方法とサンプルコードについて紹介します。

【Session】セッション管理

セッションとは、複数のページ間でデータを格納する仕組みです。
この仕組を使うことで、同じ閲覧者がページAで入力したデータを、ページBでも使えたりできます。

Cookie(クッキー)はクライアント側でデータを保管してもらうのに対して、セッションではサーバー側で保管します。
セッションでは、個々のクライアントに対して一意なセッションIDを作成します。
そして、クライアント側に「セッションIDを記述した識別用Cookie」を保存させます。
(セッションを使用する際には、Cookieも同時に用いることが多い)

PHPでは、session_start関数でセッションを作成できます。

【書式】

session_start()

■処理内容
①セッション未使用のクライアントからアクセスがあれば、セッションを開始して「セッションID」割り当て。
※セッションIDはクライアント側にクッキー名「PHPSESSID」で保存
②セッション使用中(クッキーにセッションIDがある)のクライアントからアクセスがあれば、サーバ側にあるセッション変数の利用準備。


ページをリロードすると、セッションIDが表示されます。

404 NOT FOUND | PHP入門速報

セッションを開始すると、サーバ側に値を保存します。
この値を「セッション変数」といいます。
個々のクライアント毎にセッション変数があり、どのクライアントのものかはセッションIDで識別します。

PHPでは、定義済みの変数「$_SESSION」で、セッション変数の作成を行います。

【書式】

$_SESSION[セッション変数名] = 値

ページを読み込むと、初回訪問時のみセッション変数に「訪問日時」を格納します。

【PHP】セッション変数の作成・書込
この記事では、PHPプログラムでセッション変数を作成(書き込み)する方法とサンプルコードについて紹介します。

セッションを開始すると、サーバ側に値を保存します。
この値を「セッション変数」といいます。
個々のクライアント毎にセッション変数があり、どのクライアントのものかはセッションIDで識別します。

PHPでは、定義済みの変数「$_SESSION」で、セッション変数の値を取得できます。

【書式】

$変数名 = $_SESSION[セッション変数名]

※ページをリロードするたびに、「前回の訪問日時:2017-03-11T05:02:02+01:00 」などと最終訪問日時が更新されて表示されます。

【PHP】セッション変数の取得・読込
この記事では、PHPプログラムでセッション変数から値を取得(読み込み)する方法とサンプルコードについて紹介します。

unset関数でセッション変数を削除できます。

【書式】

unset ( $_SESSION(変数名) );

カンマ区切りで複数の変数名を指定することもできます

【PHP】セッション変数の削除
この記事では、PHPプログラムでセッション変数を削除する方法とサンプルコードについて紹介します。

定義済み変数$_SESSIONに空の配列を代入することで全てのセッション変数を削除できます。

【書式】

$_SESSION = array();
【PHP】全てのセッション変数を削除
この記事では、PHPプログラムで全てのセッション変数を削除する方法とサンプルコードについて紹介します。

session_destroy関数を用いてセッションの登録データを全て破棄できます。
(※セッションに関するグローバル変数とセッションクッキーの破棄は行いません)

【書式】

session_destroy();

■返り値
True:成功、FALSE:失敗

【PHP】セッションの登録データ削除
この記事では、PHPプログラムで全てのセッション変数を削除する方法とサンプルコードについて紹介します。

セッション名とは、セッションを開始した際にクライアント側の保存するCookie名です。
※デフォルトでは「PHPSESSID」でphp.iniで設定されています。(iniファイルの編集でデフォルト値の変更可)

PHPでは、session_name関数でセッション名を取得したり変更できます。

【書式】

session_name ( 新しいセッション名 )

■返り値
現在のセッション名
※引数に何も指定しない場合は、セッション名を変更せず、現在のセッション名の取得だけ行えます


【PHP】セッション名の取得・変更
この記事では、PHPプログラムでセッション名を取得・変更する方法とサンプルコードについて紹介します。

セッションIDは、デフォルトのままだとランダムな値が設定されます。
PSPでは、session_id関数でセッションIDを任意に設定・変更できます。

【書式】

session_id ( ID名 )

■返り値
現在のセッションID
※引数にID名を指定しない場合は、IDの取得だけ行えます。


【PHP】セッションIDの取得・変更
PHPプログラムでセッションISを取得・変更する方法とサンプルコードについて紹介します。

session_regenerate_id」関数でセッションを終了させずに、セッションIDだけを新しい値に更新できます。
このように、セッションIDを定期的に更新することとで、第三者にセッションを乗っ取られることを防ぎ、サイトのセキュリティ性を向上できます。

【書式】

session_regenerate_id ( 論理値 )

■引数
True: 古いセッション情報を削除 (デフォルトはFalse)
※データ量増大とセキュリティ面の問題から、古いセッション情報は削除した方がいいです

■返り値
成功:True、失敗:False


【PHP】セッションIDの自動更新(セキュリティ向上)
この記事では、PHPプログラムでセッションISを取得・変更する方法とサンプルコードについて紹介します。

ログアウト

ログアウト処理を行う流れは以下の通りです。

①セッション変数を全て削除
②セッションクッキー(セッションIDが書かれたCookie)を削除
③セッションの登録データを削除

【セッション変数を作成・更新するページ】


【ログアウト処理用のページ】


ページの「ログアウト」リンクをクリックするとログアウト処理がされます。

【PHP】ログアウト処理
PHPプログラムでログアウト処理を行うページを作成する方法とサンプルコードについて紹介します。

【応用例】アクセス数のカウント、メール送信

【PHP】Cookieで訪問回数のカウント
この記事では、PHPプログラムでCookie(クッキー)を利用した訪問回数のカウント方法とサンプルコードについて紹介します。
【PHP】メール送信の設定(SMTPサーバ名とポート番号)
php.iniファイル編集によるメール送信の設定方法とサンプルコードについて紹介します。
【PHP】メールの送信(ASCII)
この記事では、PHPプログラムでメール(ASCII)を送信する方法とサンプルコードについて紹介します。
【PHP入門】基礎文法とサンプルコード集
PHPの基本文法やサンプルプログラムを入門者向けに解説しています。

コメント