PHPでCookieを使う方法【初心者向け】

プログラミング初心者向けに、PHPの【Cookie(クッキー)】を使う方法を解説した記事です。Cookieとは、ブラウザ側に一時的にデータを保存するための仕組みです。PHPでは「setcookie」を使います。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

プログラミング初心者向けに、PHPの基礎を紹介する記事です。

今回は、PHPでCookie(クッキー)を使う方法を初心者向けの解説します。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

また、開発環境はXAMPPを使っています。

そもそもPHPが何か分からない場合は、先にPHPとはの記事をご覧ください。

 

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。(動画は3つに分かれています)

 

Cookieとは

Cookie(クッキー)とは、コンピュータのブラウザ側に一時的にデータを保存するための仕組みのことです。

 

たとえば、よく訪問するWebサイトにログインするときにIDやパスワードが履歴として出てきたり、ネットショッピングでショッピングカートに入れたものが一定の期間だけ保存されていたりしますよね。これは、Cookieが働いているためです。

 

CookieはPHPで設定することができます。次のように、シンプルに setcookie という関数を使い、(  )内にそのクッキーの名前・データ・有効期限を入れて書くことができます。

クッキー

 

大石ゆかり

クッキーは、アクセスしてくれた人にデータを送ることが出来るんですか?

田島悠介

そうなんだ。ブラウザにはクッキーを保存する小さいメモ帳みたいなのが搭載されてるんだ。

大石ゆかり

ブラウザに保存したデータは、どう使うんですか?

田島悠介

アフィリエイトIDとか、ログインした会員や管理人しか入れないページにも使われてるんだよ。実際に書いてみよう!

 

実際に書いてみましょう。

<?php
setcookie(‘username’,’yamada’,time()+60*60*24*7);
echo $_COOKIE[‘username’];
?>

※ time の +60*60*24*7 は、有効期限が1週間だということをあらわしています。

 

今回は echo で Cookie の名前を出力してみたので、Cookie で裏側に保存されていたデータを取り出すことができました。

yamada

 

このように、Cookieは裏側で保存して使いまわすことができますが、Cookieのデータを消したい場合もありますよね。

削除したい場合は、有効期限のところを time()-1 にしてあげます。

<?php
setcookie(‘username’,’yamada’,time()-1);
echo $_COOKIE[‘username’];
?>

 

更新してみましょう。

エラー

すると、Cookieが見つからないというエラーになります。

 

おわりに

今回の記事は以上です。

ECサイトなど、いろいろなシステムを構築していくときに使っていきますので覚えておいてくださいね。

Cookieについて理解したら、PHPでセッションを使う方法も合わせてご覧ください。

 

大石ゆかり

スーパーグローバル変数の$_COOKIEで、セットしたクッキーの名前を指定すると、値が取り出せるんですねー。

田島悠介

ブラウザにセットしたクッキーって、同じサーバーにアクセスすると送り返してくるんだ。$_COOKIEは、それを取得しているんだよ。

大石ゆかり

こちらがPHPでデータをセットする。そして、セットされたデータは、同じサーバーの場合、送り返すようになってるんですか?

田島悠介

そうなんだ。よりくわしく知りたい場合は、セッションの項目も見てほしいな。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい

と思ったことはないでしょうか?

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。