PHP setcookie() 関数
例
次の例では、値が「John Doe」の「user」という名前の Cookie を作成します。 Cookie は 30 日 (86400 * 30) 後に期限切れになります。 「/」は、Cookie が Web サイト全体で使用できることを意味します (そうでない場合は、好みのディレクトリを選択してください)。
次に、Cookie「user」の値を取得します (グローバル変数 $_COOKIE を使用)。また、isset() 関数を使用して、Cookie が設定されているかどうかを確認します。
定義と使用法
setcookie() 関数は、残りの HTTP ヘッダーと一緒に送信される Cookie を定義します。
Cookie は、多くの場合、ユーザーを識別するために使用されます。 Cookie は、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピューターがブラウザーでページを要求するたびに、Cookie も送信されます。 PHP を使用すると、Cookie 値の作成と取得の両方を行うことができます。
Cookie の名前は、同じ名前の変数に自動的に割り当てられます。たとえば、Cookie が「user」という名前で送信された場合、Cookie 値を含む $user という変数が自動的に作成されます。
注:setcookie() 関数は、<html> タグの前に表示する必要があります。
注:Cookie の値は、Cookie の送信時に自動的に URL エンコードされ、受信時に自動的にデコードされます。 (URL エンコードを防ぐには、代わりにsetrawcookie()を使用します)
構文
パラメータ値
パラメータ |
説明 |
---|---|
name | 必須。クッキーの名前を指定します |
value | オプション。クッキーの値を指定します |
expire | オプション。 Cookie の有効期限を指定します。値: time()+86400*30 は、Cookie が 30 日で期限切れになるように設定します。このパラメーターを省略するか、0 に設定すると、Cookie はセッションの終了時 (ブラウザーが閉じるとき) に期限切れになります。デフォルトは 0 です |
path | オプション。 Cookie のサーバー パスを指定します。 「/」に設定すると、Cookie はドメイン全体で使用可能になります。 「/php/」に設定すると、Cookie は php ディレクトリと php のすべてのサブディレクトリ内でのみ利用可能になります。デフォルト値は、Cookie が設定されている現在のディレクトリです。 |
domain | オプション。 Cookie のドメイン名を指定します。 example.com のすべてのサブドメインで Cookie を利用できるようにするには、ドメインを「example.com」に設定します。 www.example.com に設定すると、Cookie は www サブドメインでのみ使用可能になります。 |
secure | オプション。安全な HTTPS 接続を介してのみ Cookie を送信するかどうかを指定します。 TRUE は、安全な接続が存在する場合にのみ Cookie が設定されることを示します。デフォルトは FALSE です |
httponly | オプション。 TRUE に設定すると、HTTP プロトコルを介してのみ Cookie にアクセスできます (スクリプト言語からは Cookie にアクセスできません)。この設定は、XSS 攻撃による個人情報の盗難を減らすのに役立ちます。デフォルトは FALSE です |
技術的な詳細
戻り値: |
成功した場合は TRUE。失敗した場合は FALSE |
---|---|
PHP バージョン: |
4+ |
PHP 変更ログ: |
PHP 5.5 - クライアントに送信される Set-Cookie ヘッダーに Max-Age 属性が含まれていました。 PHP 5.2 - httponly パラメータが追加されました |
その他の例
例
Cookie のいくつかの有効期限:
例
Cookie を変更するには、setcookie() 関数を使用して Cookie を (再度) 設定します。
例
Cookie を削除するには、過去の有効期限で setcookie() 関数を使用します。
例
Cookie が有効かどうかを確認する小さなスクリプトを作成します。まず、setcookie() 関数でテスト Cookie を作成してから、$_COOKIE 配列変数をカウントします。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。