概要
状態:-
閲覧数:2,187
投稿日:2014-07-24
更新日:2017-02-07
ブラウザへ対して、Set-Cookieヘッダー を送信
・値のみパーセントエンコード
・クッキー名 以外の全ての引数はオプション
・値のみパーセントエンコード
構文
・クッキー名 以外の全ての引数はオプション
setcookie(クッキー名[,クッキーの値[,クッキーの有効期限[,パス[,ドメイン[,セキュア[,http]]]]]]);
数 | 名称 | 内容 |
---|---|---|
1 | クッキー名 | 保存するcookie名を指定。PHPが受け取った際、$_COOKIE変数のキーとなる。クッキー名 が 'hoge' だとすると、その値は $_COOKIE['hoge'] で取得可能 |
2 | クッキーの値 | cookieに保存する値を指定。PHPが受け取った際、$_COOKIE変数に格納される値となる。クライアントのコンピュータに保存されるため、 重要な情報を格納してはいけない。 ※この引数は文字列しかサポートしないため、、配列をそのままでは(一つの変数として)クッキーへ書き込みできない ⇒配列は、 配列要素と同数のクッキーを設定されるため、発行数制限等の観点から、利用は現実的でない ⇒多くの値をクッキーに入れたいならserializeを使うか、セッションを使うしかない |
3 | クッキーの有効期限 | UNIXタイムスタンプで指定(秒数)。「0 を設定」したり「この引数自体を省略」した場合は、セッション最後 (Webブラウザを閉じるまで) が有効期限となる |
4 | パス | クッキーの有効範囲をディレクトリで指定。ドメイン配下のすべてのディレクトリで有効するには'/'と指定。'/a/'に設定すると、クッキーは/a/ディレクトリとそのディレクトリの配下/a/b/で有効となる。省略した場合は 「スクリプトが存在しているディレクトリ を指定」したと見なされる |
5 | $domain | クッキーが有効なドメインを指定。「ドメインexample.com」及び「そのドメインの全部のサブドメイン」でクッキーを有効するためには'.example.com'にセットする。省略した場合はスクリプトが存在するサーバーのものがそのまま使用される |
6 | $isSecure | セキュアオプション。SSL(HTTPS接続)通信指定。HTTPS接続のみに限定するかどうか。引数にTRUEを設定すると、SSL通信場合にのみクッキーが有効となる。これにより安全性が高まる。デフォルト値は false |
7 | $httponly | JavaScriptからのアクセスをブロックするかどうか。TRUE指定するとWebブラウザはHTTPアクセス時にのみcookieを送信する。XSS(クロスサイトスクリプティング)のよう に、JavaScript等でcookie情報を盗まれる危険性を減じることが出来る。(この設定は全てのブラウザがサポートしているわけではない)。デフォルト値は false |
実行例
PHP
setcookie('クッキー名', 'クッキー値', 992174400, '/foo/bar', 'example.com', false, true);
Set-Cookieヘッダー
Set-Cookie: クッキー名=%e3%82%af%e3%83%83%e3%82%ad%e3%83%bc%e5%80%a4; expires=Sun, 10-Jun-2001 12:00:00 GMT; path=/foo/bar; domain=example.com; httponly