setcookie
そふぃのPHP入門 >> PHP関数リファレンス >> ネットワーク関数 >> setcookie

setcookie

解説 クッキーを送信する
書式 bool setcookie( string name [, string value [, int expire [, string path [, string domain [, bool secure ]]]]] )
bool setcookie( string クッキー名 [, string クッキー値 [, int 有効日時 [, string パス [, string ドメイン [, bool SSLフラグ ]]]]] )
引数 name クッキー名
value クッキー値
expire 有効日時
path パス
domain ドメイン
secure 1指定でHTTPS通信の場合のみクッキー送信(デフォルトは0)
返値 TRUE(成功した時)/FALSE(失敗した時)

PHPマニュアル:setcookie setcookie()

setcookie()関数:概略解説

setcookie()は送信するクッキー情報を定義します。

setcookie()関数:返り値解説

クッキーの送信に成功した時にTRUE、失敗した時にFALSEを返します。

{$smarty.const.HTML_KOME}クッキーはヘッダ情報と同様、他の出力の前にセットされなければいけません。HTMLタグはもちろん、スペースなどの出力もクッキー送信の前にあってはなりません。何らかの出力がこの関数の前にあった場合、setcookie()関数は失敗し、FALSEを返します。

setcookie()関数:引数解説

nameクッキー名
クッキーの名前を指定します。この引数だけは省略できませんが、残りの引数は全てオプション扱いとなってます。この引数のみが指定された場合、指定された名前のクッキーが削除されます。
valueクッキー値

第2引数はクッキーの値です。クッキーに格納しておきたい値を記述します。

この値は$_COOKIE['クッキー名']で受け取る事ができます。

{$smarty.const.HTML_KOME}この値はクッキーの送信を行う際に自動的にURLエンコードされます。また、クッキーを受信する際には自動的にURLデコードされるので便利です。

スキップする場合は空文字列「""」を指定します。

expire有効日時

第3引数はクッキーの有効期限をUnixタイムスタンプで指定します。省略した場合はその場限り、つまりユーザが「ブラウザを閉じたら自動で破棄される」という短命のクッキーが送信されます。

スキップする場合は数値の「0」を指定します。

pathパス

第4引数はクッキーを有効にしたいパスを指定します。'/'を指定するとクッキーはそのドメイン配下の全てで有効になります。'/foo/'を指定するとクッキーはfooディレクトリ(フォルダ)とそのサブディレクトリ(例えばfoo/bar/)のみ有効になります。デフォルトはクッキーがセットされた時のカレントディレクトリとなります。

スキップする場合は空文字列「""」を指定します。

domainドメイン

第5引数はクッキーを有効にするドメインです。exapmle.comの全てのサブドメインでクッキーを有効とするには'.example.com'をセットします。.は必須ではありませんが多くのブラウザにおいて互換性があります。www.example.comにセットすると、クッキーはwwwサブドメインにおいてのみ有効となります。

スキップする場合は空文字列「""」を指定します。

secureSSLフラグ
1を指定するとSSL接続の時(HTTPS接続時)のみクッキーが送信されるようになります。デフォルト値は0です。

setcookie()関数:補足解説

クッキーを削除する場合には第3引数の有効期限(expire)を過去に設定します。

また、クッキー名で配列を使用することができるので、配列要素と同数のクッキーを設定する事ができます。クッキーには制限数がありますが、配列とした場合には1つとカウントされるので便利です。

setcookie()関数:注意

IE4 SP1ではパスを指定したクッキーを正確に処理することができないようです。また、Netscape Communicator 4.05及びIE3.xはパスと有効期限が設定されていない場合にクッキーを正確に処理する事ができないようです。

参考関数

  • header() ---- HTTPヘッダを送信する

サンプルスクリプト

簡単な利用例

  1. <?php
  2. $value = 'クッキー送信のサンプル';
  3. setcookie ("TestCookie", $value);
  4. setcookie ("TestCookie", $value, time()+3600); // 有効期限1時間
  5. ?>
PHP辞典
PHP辞典 PHP5の関数にも対応したリファレンスですが、関数ごとにバージョンが表示されているのでPHP4ユーザにも安心。簡単なサンプルが全ての関数についている事と目的別検索が魅力です。
PHPポケットリファレンス
PHPポケットリファレンス 携帯用でもOKの小さめの本。関数本にありがちな分厚い・重い・見るのがおっくうという欠点をコンパクト化で解消してます。小さいながらも関数の掲載量・内容は共に十分充実しており、関数ごとのサンプルや目的別検索もあります。