TECH I.S.

PHP setrawcookie() 関数

❮ PHP ネットワークリファレンス

次の例では、PHP で Cookie を作成します。 Cookie の名前は「user」で、値は「John Doe」になります。 Cookie 値は URL エンコードされません。 Cookie は 30 日 (86400 * 30) 後に期限切れになります。 「/」を使用すると、Cookie が Web サイト全体で利用できることを意味します (そうでない場合は、好みのディレクトリを選択してください)。

<?php $cookie_name = "user"; $cookie_value = "John"; setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day ?> <html> <body> <?php echo "Cookie is set."; ?> </body> </html> ?>


定義と使用法

setrawcookie() 関数は、残りの HTTP ヘッダーと一緒に送信される Cookie (URL エンコードなし) を定義します。

Cookieはユーザーを識別するためによく使用されます。 Cookie は、サーバーがユーザーのコンピューターに埋め込む小さなファイルです。同じコンピューターがブラウザーでページを要求するたびに、Cookie も送信されます。 PHP を使用すると、Cookie 値の作成と取得の両方を行うことができます。

Cookie の名前は、同じ名前の変数に自動的に割り当てられます。たとえば、Cookie が「user」という名前で送信された場合、Cookie 値を含む $user という変数が自動的に作成されます。

注:setrawcookie() 関数は、<html> タグの前に表示する必要があります。

注:送信時に Cookie 値を自動的に URL エンコードし、受信時に自動的にデコードするには、代わりにsetcookie関数を使用します。

構文

setrawcookie(name, value, expire, path, domain, secure);

パラメータ値

パラメータ

説明

name 必須。クッキーの名前を指定します
value オプション。クッキーの値を指定します
expire オプション。 Cookie の有効期限を指定します。値: time()+86400*30 は、Cookie が 30 日で期限切れになるように設定します。このパラメーターが設定されていない場合、Cookie はセッションの最後 (ブラウザーが閉じるとき) に期限切れになります。
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 です。


技術的な詳細

戻り値:

成功した場合は TRUE。失敗した場合は FALSE

PHP バージョン:

5+

その他の例

「user」という名前の Cookie の値を取得します (グローバル変数 $_COOKIE を使用)。また、isset() 関数を使用して、Cookie が存在するかどうかを確認します。

<html> <body> <?php $cookie_name = "user"; if(!isset($_COOKIE[$cookie_name])) {     echo "Cookie named '" . $cookie_name . "' does not exist!"; } else {     echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name]; } ?> </body> </html>

Cookie を変更するには、setrawcookie() 関数を使用して Cookie を (再度) 設定します。

<?php $cookie_name = "user"; $cookie_value = "Alex"; setrawcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); ?> <html> <body> <?php $cookie_name = "user"; if(!isset($_COOKIE[$cookie_name])) {     echo "Cookie named '" . $cookie_name . "' does not exist!"; } else {     echo "Cookie is named: " . $cookie_name . "<br>Value is: " . $_COOKIE[$cookie_name]; } ?> </body> </html>

Cookie を削除するには、過去の有効期限で setrawcookie() 関数を使用します。

<?php $cookie_name = "user"; unset($_COOKIE[$cookie_name]); // empty value and expiration one hour before $res = setrawcookie($cookie_name, '', time() - 3600); ?> <html> <body> <?php echo "Cookie 'user' is deleted."; ?> </body> </html>

Cookie が有効かどうかを確認する小さなスクリプトを作成します。まず、setrawcookie() 関数でテスト Cookie を作成してから、$_COOKIE 配列変数をカウントします。

<?php setrawcookie("test_cookie", "test", time() + 3600, '/'); ?> <html> <body> <?php if(count($_COOKIE) > 0) {     echo "Cookies are enabled"; } else {     echo "Cookies are disabled"; } ?> </body> </html>


❮ PHP ネットワークリファレンス


プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細