setcookie関数

クッキー

概要

 状態:-  閲覧数:2,363  投稿日: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


実行例

 閲覧数:466 投稿日:2017-02-07 更新日:2017-02-07 

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



Cookie

コメント投稿(ログインが必要)



類似度ページランキング
順位 ページタイトル抜粋
1 setcookie関数 82
2 Doctrine 53
3 isset 50
4 session_destroy関数 50
5 json_encode関数 50
6 Cookie 47
7 switch文 44
8 Exceptionクラス 43
9 define と const の違い 41
10 static修飾子 40
11 session_start() 38
12 Generators 38
13 $this 38
14 session.hash_function 38
15 register_globals 37
16 セッションCookie 36
17 session.gc_maxlifetime 36
18 ErrorExceptionクラス 36
19 整数型(integer) 35
20 syntax error 35
2025/5/31 10:42 更新
週間人気ページランキング / 5-24 → 5-30
順位 ページタイトル抜粋 アクセス数
1 PHPにおけるメソッドのオーバーライドについて /「引数の数や型は、親クラスのメソッドと完全に一致していなければなりません。」とは具体的にどういう意味ですか? 5
2 http_build_queryとは? / 構文 /パラメータ 4
2 Parse error: syntax error, unexpected 'public' (T_PUBLIC) | Parse error(エラーメッセージ) 4
3 セッション管理が必要な理由は、HTTPプロトコルには状態を保持する機能がないため | セッション 3
3 htmlspecialchars / htmlentities / addslashes / mysql_real_escape_string / mysqli_real_escape_string | セキュリティ 3
3 ブラウザを閉じたらセッションデータはどうなるの? | セッション 3
4 ( ! ) Fatal error: Uncaught PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column | Fatal error(エラーメッセージ) 2
4 set_error_handler | 例外処理(制御構造) 2
4 $this | クラスとオブジェクト 2
4 Fatal error(エラーメッセージ) カテゴリー 2
4 PHPで定数を定義する方法は2種類ある / 配列定数の定義 2
4 Warning: session_write_close(): Failed to write session data (user) | Warning(エラーメッセージ) 2
4 ( ! ) Warning: Declaration of xxxx should be compatible with | エラーメッセージ 2
4 ( ! ) Fatal error: Uncaught Abraham\TwitterOAuth\TwitterOAuthException: {"errors":[{"code":32,"message":"Could not authenticate you."}]} | Fatal error(エラーメッセージ) 2
4 インポートするデータを受信できませんでした。ファイル名が送信されていないか、ファイルサイズが PHP の設定で許可された最大値を超えています。FAQ 1.16 をご覧ください | エラーメッセージ 2
4 Fatal error: require_once(): Failed opening required 'PEAR.php' | Fatal error(エラーメッセージ) 2
4 Fatal error: Uncaught Wrench\Exception\HandshakeException: No accept header receieved on handshake response in ★★★ headless-chromium-php/vendor/wrench/wrench/lib/Wrench/Protocol/Protocol.php | エラーメッセージ 2
4 Fatal error: Uncaught Error: Call to a member function modify() on string | Fatal error(エラーメッセージ) 2
4 可変変数 | 変数 2
4 クロージャ | 関数 2
2025/5/31 1:01 更新