PHPサンプル
UPDATE:2017年04月01日
クッキー(cookie)を作成して使いたい
クッキー(Cookie)の送信・削除・受信 クッキー関数の setcookie() と $_COOKIE
POINT
- クッキー(Cookie)の送信と削除には、setcookie()関数を使用する
- setcookie() はすべての出力の前に設定する
ヘッダー(header)情報、<DOCTYPE>タグ、<html>タグ、空白、echo、print などより前 - setcookie() では、name,value,expire,path,domain,secure,httponlyを指定する
※name以外省略可能 - setcookie() が成功するとTRUEを返し、失敗するとFALSEを返す
- クッキー(Cookie)の受信には、
スーパーグローバル変数 $_COOKIE を使用する
クッキー(Cookie)の送信や削除を行うには、「setcookie()」関数を使用します。また、この関数はブラウザへのあらゆる出力の前にコールする必要があるます。ヘッダー(header)情報、<DOCTYPE>タグ、<html>タグ、空白、echo、print などより前にコールして下さい。
クッキー(Cookie)を受信するにはスーパーグローバル変数 $_COOKIE を使用します。ブラウザに保存されているクッキー(Cookie)は$_COOKIEへ自動的に格納されます。$_COOKIEは連想配列として使用します。$_COOKIE['クッキー名']という形でデータを出力します。
setcookie()関数
論理値 = setcookie(name [, value [, expire [, path [, domain [, secure [, httponly]]]]]]); //[]はオプション
name (string) | クッキーの名前を指定します。名前は一意です。空白やセミコロンは使用できません。この名前は$_COOKIEで値を出力する際のキー名として使用します。名前が「tryphpCookie」だった場合は、$_COOKIE['tryphpCookie']で取得します。 |
---|---|
value (string) | 保存するクッキーの値を指定します。クライアント(ウェブブラウザ)に保存されるクッキーのデータです。保存可能なのは文字列データのみです。容量制限はありませんが、4KB以下が目安です。この値はPHPのスパーグローバル変数 $_COOKIE で取得できます。 |
expire (int) | クッキーの有効期限をUnixタイムスタンプで指定します。「time()+60*60*24*30」とした場合、30日後まで有効となります。「time()-1800」マイナスを指定するとクッキーデータが削除されます。有効期限を指定しない場合は、ブラウザを閉じた時点でクッキーが削除されます。 |
path (string) | サーバー上のクッキーを有効とするパスを指定します。「/」とした場合、ドメイン以下すべてでクッキーが有効になります。「/dir/」とした場合、 dir ディレクトリ以下すべてで有効になります。 |
domain (string) | クッキーを有効とするドメイン(domain)を指定します。このドメイン配下のときのみクライアントへクッキーが送信されます。 |
secure (bool) | SSLの有無の設定。「TRUE」にするとクライアントからHTTPS接続されたときのみクライアントへクッキーが送信されるようになります。デフォルトでは「FALSE」です。 |
httponly (bool) | HTTPからのみ接続を有効とする指定です。「TRUE」にするとHTTPを通してのみクライアントのクッキーにアクセスできるようになります。javascriptからはアクセスできません。 |
クッキー送信の例
※このコードはあらゆる出力の前に記述してください。ヘッダー(header)情報、<DOCTYPE>タグ、<html>タグ、空白、echo、print などより前です。
1 2 3 4 5 6 7 8 | <!-- サンプルコード --> <?php setcookie('tryphpCookie1','「name:tryphpCookie1」のクッキーとして保存する文字列データです。'); setcookie('tryphpCookie2','「name:tryphpCookie2」のクッキーとして保存する文字列データです。', time()+3600);//有効期限は1時間 setcookie('tryphpCookie3','「name:tryphpCookie3」のクッキーとして保存する文字列データです。', time()+(60*60*24)*7, '/code-example/php/', 'wepicks.net', FALSE, TRUE); ?> |
クッキー取得の例
※スーパーグローバル変数 $_COOKIE で取得します。連想配列のキー名はクッキー名を使用します。
1 2 3 4 5 6 | <!-- サンプルコード --> <?php echo '$_COOKIE[\'tryphpCookie1\']の出力:'.$_COOKIE['tryphpCookie1']."<br>\n"; echo '$_COOKIE[\'tryphpCookie2\']の出力:'.$_COOKIE['tryphpCookie2']."<br>\n"; echo '$_COOKIE[\'tryphpCookie3\']の出力:'.$_COOKIE['tryphpCookie3']."<br>\n"; ?> |
結果は
$_COOKIE['tryphpCookie1']の出力:「name:tryphpCookie1」のクッキーとして保存する文字列データです。
$_COOKIE['tryphpCookie2']の出力:「name:tryphpCookie2」のクッキーとして保存する文字列データです。
$_COOKIE['tryphpCookie3']の出力:「name:tryphpCookie3」のクッキーとして保存する文字列データです。
$_COOKIE['tryphpCookie2']の出力:「name:tryphpCookie2」のクッキーとして保存する文字列データです。
$_COOKIE['tryphpCookie3']の出力:「name:tryphpCookie3」のクッキーとして保存する文字列データです。
となります。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | <!-- サンプルコード --> <? //クッキー変数作成 //クッキーの名前 $iCkeName = 'tryphpCookieName'; //クッキーの値 $sCkeValue = date('Y-m-d H:i:s').'にtryphpで作成したcookieの値です。'; //有効期限は7日間 $iCkeTimeOut = time()+(60*60*24)*7; //クッキーが有効なサイト上のパス $sPath = '/'; //クッキーが有効なドメイン $sDomain = 'wepicks.net'; //クッキーセット setcookie($iCkeName, $sCkeValue, $iCkeTimeOut, $sPath, $sDomain); ?> <?php $sTitle = 'クッキーの作成とクッキー変数呼び出し「setcookie()」'; ?> <?php $sPageUrl = 'https://wepicks.net/2012/03/02/phpsample-cookie-create/'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta name="robots" content="index"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <head> <title>TRYPHP! PHPサンプル <?php echo $sTitle; ?></title> </head> <body> <h1>PHPサンプル <?php echo $sTitle; ?></h1> <!-- 説明ページ --> <h3><a href="<?php echo $sPageUrl; ?>">→説明はこちら</a></h3> <hr/> <h2>サンプルコード実行</h2> <div style="background-color:#f8f8f8;margin:20px; padding:20px; border:solid #cccccc 1px;"> <!-- // =========================== ここから =========================== --> <h3>クッキー変数呼び出し</h3> <?php //クッキー変数呼び出し echo $_COOKIE['tryphpCookieName']; ?> <!-- =========================== ここまで =========================== // --> </div> <hr/> </body> </html> |
タグ(=記事関連ワード)
日付
投稿日:2012年3月2日
最終更新日:2017年04月01日
最終更新日:2017年04月01日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsample-cookie-create/trackback/