PHPでウェブの世界と繋がろう!
menu
ホーム > PHPサンプル > クッキー系 > クッキー(cookie)を作成して使いたい

クッキー(cookie)を作成して使いたい

Pocket

クッキー(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 などより前です。

<?php
setcookie('tryphpCookie1','「name:tryphpCookie1」のクッキーとして保存する文字列データです。');

setcookie('tryphpCookie2','「name:tryphpCookie2」のクッキーとして保存する文字列データです。', time()+3600);//有効期限は1時間

setcookie('tryphpCookie3','「name:tryphpCookie3」のクッキーとして保存する文字列データです。', time()+(60*60*24)*7, '/code-example/php/', 'tryphp.net', FALSE, TRUE);
?>

クッキー取得の例
※スーパーグローバル変数 $_COOKIE で取得します。連想配列のキー名はクッキー名を使用します。

<?php
echo '$_COOKIE&#91;\'tryphpCookie1\'&#93;の出力:'.$_COOKIE&#91;'tryphpCookie1'&#93;."<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」のクッキーとして保存する文字列データです。

となります。

サンプルコード

– サンプル Click Here ! –

<?
//クッキー変数作成
//クッキーの名前
$iCkeName     =    'tryphpCookieName';
//クッキーの値
$sCkeValue     =   date('Y-m-d H:i:s').'にtryphpで作成したcookieの値です。';
//有効期限は7日間
$iCkeTimeOut  =    time()+(60*60*24)*7;
//クッキーが有効なサイト上のパス
$sPath =           '/';
//クッキーが有効なドメイン
$sDomain =         'tryphp.net';
//クッキーセット
setcookie($iCkeName, $sCkeValue, $iCkeTimeOut, $sPath, $sDomain);
?>

<?php $sTitle = 'クッキーの作成とクッキー変数呼び出し「setcookie()」'; ?>
<?php $sPageUrl = 'http://www.tryphp.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&#91;'tryphpCookieName'&#93;;
?>

<!-- =========================== ここまで =========================== // -->
</div>
<hr/>






</body>
</html>

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2012年3月2日
最終更新日:2014年02月20日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://www.tryphp.net/phpsample-cookie-create/trackback/