PHP5 の Cookie の概要 (1)
1. Cookie の設定と適用
Cookie を設定します
bool setcookie ( 文字列名 [, 文字列値 [, int
有効期限 [, 文字列パス [, 文字列ドメイン [, bool secure]]]] );
?
Cookie を削除
bool setcookie(name, "");
?
パラメータ
参数
说明
举例
name |
Cookie 的名字。 |
使用 $_COOKIE['cookiename'] 调用名为 cookiename 的 cookie。
|
value |
Cookie 的值。此值保存在客户端,不要用来保存敏感数据。 |
假定 name 是 'cookiename',可以通过 $_COOKIE['cookiename'] 取得其值。 |
expire |
Cookie 过期的时间。这是个 Unix 时间戳,即从 Unix 纪元开始的秒数。换而言之,通常用 time() 函数再加上秒数来设定 cookie
的失效期。或者用 mktime()来实现。
|
time()+60*60*24*30 将设定 cookie 30 天后失效。如果未设定,cookie
将会在会话结束后(一般是浏览器关闭)失效。 |
path |
Cookie 在服务器端的有效路径。 |
如果该参数设为 '/' 的话,cookie 就在整个 domain 内有效,如果设为 '/foo/',cookie
就只在 domain 下的 /foo/
目录及其子目录内有效,例如 /foo/bar/。默认值为设定 cookie 的当前目录。 |
domain |
该 cookie 有效的域名。 |
要使 cookie 能在如 example.com 域名下的所有子域都有效的话,该参数应该设为 '.example.com'。虽然 .
并不必须的,但加上它会兼容更多的浏览器。如果该参数设为 www.example.com 的话,就只在 www 子域内有效。细节见 Cookie
规范中的 tail matching。 |
secure |
指明 cookie 是否仅通过安全的 HTTPS 连接传送。当设成 TRUE
时,cookie 仅在安全的连接中被设置。默认值为 FALSE。 |
0 或 1
|
説明
例
名前 |
クッキーの名前。 |
$_COOKIE['cookiename'] を使用して、cookiename という名前の Cookie を呼び出します。
|
値 |
Cookie の値。この値はクライアント側に保存されるため、機密データの保存には使用しないでください。 |
name が 'cookiename' であるとすると、その値は $_COOKIE['cookiename'] を通じて取得できます。 |
有効期限 |
Cookie の有効期限が切れる時刻。これは Unix タイムスタンプ、つまり Unix エポックからの秒数です。言い換えれば、Cookie は通常、time() 関数と秒数を使用して設定されます。
有効期限。または、mktime() を使用してそれを実現します。
|
time()+60*60*24*30 は、Cookie が 30 日後に期限切れになるように設定します。設定されていない場合は、Cookie
セッションの終了後 (通常はブラウザを閉じたとき) に有効期限が切れます。
|
パス |
サーバー側の Cookie の有効なパス。 |
このパラメータが '/' に設定されている場合、Cookie は ドメイン 全体内で有効になります。 foo/'、クッキー
ドメインの下の/foo/だけです
/foo/bar/ などのディレクトリとそのサブディレクトリ内で有効です。デフォルト値は、Cookie が設定されている現在のディレクトリです。
|
ドメイン |
この Cookie が有効なドメイン名。 |
example.com ドメイン名のすべてのサブドメインで Cookie を有効にするには、このパラメータを '.example.com' に設定する必要があります。 .ですが
必須ではありませんが、追加するとより多くのブラウザと互換性が得られます。このパラメータが www.example.com に設定されている場合、このパラメータは www サブドメイン内でのみ有効になります。詳細については、「Cookie」を参照してください。
仕様のテールマッチング。 |
安全 |
Cookie が安全な HTTPS 接続経由でのみ送信されるかどうかを示します。 TRUEに設定した場合
、Cookie は安全な接続でのみ設定されます。デフォルト値は FALSE です。 |
0 または 1
|
テーブル>
?
他のヘッダーと同様に、Cookie はスクリプトからの他の出力 よりも前に 送信する必要があります (これはプロトコルの制限です)。これには、 や などの出力の前にこの関数の呼び出しを配置する必要があります。
タグと任意のスペース。 setcookie() を呼び出す前に出力がある場合、この関数は失敗し、FALSE を返します。 setcookie() 関数が正常に実行されると、次の値が返されます。
本当。これは、ユーザーが Cookie を受け入れたかどうかを示すものではありません。