$_SESSIONと$_COOKIEの使い方

Sessionの基本

クライアント側

sesson_startでセッション開始すると、
クライアント側で「PHPSESSID」というキー名でのCOOKIEが保存されます。確認したい場合は、$_COOKIE[“PHPSESSID”]で確認できます。

サーバー側

PHPSESSIDで紐付けらたデータをサーバー側で保存(辞書型配列)しています。
セッションの内容は$_SESSION[“セッション名”]で確認できます。
クライアントのブラウザを閉じるとsessionは破棄されます。

注意事項

sesson_startを記載する場所は、必ずhtmlタグより前の行でないといけません。ブラウザによってはWarningがでるらしいです(処理自体は実行される)。 できればphpコードの中でも先頭の行に書くようにしましょう。

セッションの削除の基本

セッションの変数を全て空(削除)にしたい場合は、 または セッションの変数を個別に削除したい場合は、
セッションの変数を削除するときに下記のようにやってはいけません。変数$_SESSION自体が削除されてしまいます。

セッション終了時の処理まとめ

参照:PHP: session_destroy – Manual 以下のような任意の名前の関数を作成して、実行します。

php.iniの設定

セッションのセキュリティー対策

セッションハイジャックなどの対策として、php.iniの設定を変更しましょう。 ※session.use_strict_modeも1にすべきとしている情報もありましたが、却下されたPHP RFCを見てみる その1 – Qiitaによると、必要ないみたいです。

設定変更後は、必ずhttpdの再起動が必要となります。

Cookieの基本

参照:PHP: setcookie – Manual

Cookieの読み取り

Cookieの書き込み

例えば
パラメータ
パス(path)特に指定しなくて良い。
ドメイン(domain)ドメインやサブドメインなどを指定することができる。
セキュア(secure)trueにすると、https接続のみ許可する。
httponlytrueにすると、JavaScriptなどのスクリプトからアクセスできなくする。
よく使う形は、
例えば、

Cookieの削除

クッキーの削除は時間をマイナス設定にすることで削除できます。 例えば、