PHP で Cookie を使用する手順

怪我咯
リリース: 2023-03-12 17:36:01
オリジナル
1514 人が閲覧しました

PHP を使用した Cookie の設定と読み取りは、極端に言うと、非常に困難です。 - 簡単なこと。 Cookie について説教するつもりはありませんが、Cookie は重要で便利です。これらは、特定の問題を解決するときに使用できる唯一のツールです。

Cookieを作成および変更するには、PHP関数setcookie()を使用します。 Cookie をどの程度制御したいか、および Cookie の値を誰が読み取ることができるかに応じて、setcookie() には最大 6 つのパラメーターを指定できます。

Cookieを設定する最も簡単な方法は次のとおりです:

<?php
setcookie(&#39;name&#39;, &#39;bret&#39;);
?>
ログイン後にコピー

その後、ユーザーが終了する前に、このブラウザを使用して表示されるサイト内のすべてのページには、値 "bret" を持つ変数$nameが含まれます。 PHP 経由で簡単にアクセスできます。有効期間は 1 つのユーザー接続であるため、このタイプの Cookie は セッション Cookie と呼ばれます。

ユーザーがブラウザを閉じた後もこの Cookie を残しておきたい場合は、この Cookie の有効期限を設定する 3 番目のパラメーターを setcookie() 関数に渡す必要があります。 PHP の背景は完全に Unix の考え方に由来しているため、この有効期限は 1970 年 1 月 1 日からの合計秒数で表す必要があります。あなたが Unix プログラマであれば、このアルゴリズムは理解できるかもしれません。しかし、Windows や Macintosh 陣営の出身なら、首を振ってため息をつき、奇妙な Unix の連中を理解できないかもしれません。

でも、恐れる必要はありません。 PHP には、非常に便利な関数 mktime() が用意されています。表現したい時、分、秒、月、日、年を順番に mktime() に渡すだけで、mktime() は 1970 年 1 月 1 日からの合計秒数を返します。したがって、2000 年問題をシミュレートする必要がある場合:

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;bret&#39;, $y2k);
?>
ログイン後にコピー

さて、あなたの Cookie は 2000 年に期限切れになります。

新しい値を保存するために Cookie を更新する必要がある場合は、元の値を上書きするだけで済みます。したがって、前のページで Cookie を送信したばかりでも、名前を「jeff」に変更できます。

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k);
?>
ログイン後にコピー

これを実行しても変数 $name の値は変更されないことに注意してください。その値はページのロード時に決定されます。常に両方を同時に決定したい場合は、次のコードを書くことができます:

<?php
$name = &#39;jeff&#39;;
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, $name, $y2k);
?>
ログイン後にコピー

setcookie() の次の 2 つのパラメーターは、Cookie を読み取るプログラムのドメインとディレクトリ パスを制御できます。デフォルト設定では、Cookie を送信したサーバーと同じディレクトリ構造内にあり、同じレベル以下のページのみがその値を読み取ることができます。これは、ネットワークセキュリティを考慮したためです。ただし、「www.domain.com」だけでなく「other.domain.com」のアカウントをお持ちで、そのアカウントで ~/myhome ディレクトリからのページの処理が許可されている場合は、setcookie() を次のように変更する必要があります:

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k, &#39;~/myhome&#39;, &#39;.domain.com&#39;);
?>
ログイン後にコピー

setcookie() で使用される最後のパラメータは、SSL などの安全な接続を実装する Web サーバーにのみ Cookie が送信されるように設定することです。この機能を使用するには、6 番目の値を 1 に設定します。

Cookie の削除は非常に簡単です。Cookie 名を setcookie() に渡すだけで、PHP がそれを削除します。

<?php
setcookie(&#39;name&#39;);
?>
ログイン後にコピー

最後に、Cookieの使用に関して注意すべき重要な点が1つあります。 Cookie が HTTP で動作する仕組みのため、テキストを出力する前にすべての Cookie を送信する必要があります。そうしないと、PHP が警告を出し、Cookie は送信されません。正しい方法は次のとおりです:

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;);
echo "Hello Everyone!";
?>
ログイン後にコピー

間違った方法は次のとおりです:

<?php
$today = mktime(12,0,0,6,25,1999);
echo &#39;Here it is &#39;.date(&#39;g:i:s a, F d, Y&#39;,$today);
echo &#39;&#39;;
echo &#39;In GMT it is &#39;.gmdate(&#39;g:i:s a, F d, Y&#39;,$today);
?>
ログイン後にコピー

以上がPHP で Cookie を使用する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート