【PHP】クッキー(cookie)について

投稿者: | 2020年8月30日
phpアイコン

 

結構cookieは奥が深いのでゆっくり覚えていきましょう!

cookieはログイン認証やカートなどで使用され、

セッションidをユーザー側に設定することでユーザー識別が可能になります。

 

【setcookie関数】

特徴

・クッキーはユーザーのブラウザに設定されます。

・値を取得したりセットしたりします。

・名前や値など変更して設定できます。

・有効期限の時間設定ができます。

など

 

【引数】下記はデフォルト

 

 

引数

引数はたくさんありますが必須は$nameのみであとは任意です。

①$name : string(必須)

デフォルトはPHPSESSID(php.iniで変更可能)。クッキーの名前を指定できます。

②$value : string(任意)

クッキーの値を指定できます。

③$expire : int(任意)

デフォルト0。クッキーの有効期限を指定します。指定しない場合はブラウザを閉じるときに削除されます。

60→60秒、60*60→1時間、60*60*24→1日、60*60*24*7→1週間

④$path : string(任意)

デフォルトは、クッキーがセットされたときのディレクトリです。クッキーを保存するパスを指定します。

⑤$domain : string(任意)

クッキーが有効なドメインを指定します

⑥$secure : bool trueかfalse(任意)

デフォルトはfalse。true を指定するとHTTPS接続の場合にのみクッキーを送信します。

⑦$httponly : bool trueかfalse(任意)

デフォルトはfalse。true を指定するとHTTPのみがクッキーにアクセスできJavaScriptなどのスクリプト言語はアクセスできなくなります。

【返り値】bool

クッキーが設定されてるときは true
クッキーが設定されてない場合は false

 

 

ブラウザでの確認方法

session_start()を記述することで、クッキーにPHPSSIDという名前のセッションIDが保存されます。

 

グーグルクロームの例

ショートカットキー
F12

Application→Cookies

 

Cookieの設定が確認できます。

 

クッキーの設定

サイトのログインやアフィリエイトIDなどに使用し期間なども設定できます。

例)

保守しやすいように連想配列の値だけ変えれば変更できるようにしたりもできます。

 

 

クッキーの取得

 

実際はここでエスケープ処理をします。

htmlspecialchars() 関数を使用。

 

 

クッキーの削除方法

参考サイト : https://www.php.net/session_destroy

サイトのログアウトの際に使用します。

この際セッションも削除しDB内に保存した値も削除します。

 

PHPサンプルコード

クッキーが設定されてなかったらクッキーを20秒で設定して値を確認するコードになります。

コピペで確認できます。

 

 

まとめ

このクッキーを使用して個別に値を付与してデータベースにその値を格納しセッションと組み合わせていけばログイン機能が作成できます。

ログイン機能を作成したい方はクッキーとセッションとデータベースを更に勉強してみてください(^O^)

覚えたらいろいろなことが実現できると思います。

以上です。

カテゴリー: php