ホームページ  >  記事  >  バックエンド開発  >  PHPでCookieを読み取る方法

PHPでCookieを読み取る方法

伊谢尔伦
伊谢尔伦オリジナル
2017-04-25 13:39:036115ブラウズ

Cookie が正常に設定されると、クライアントは Web サーバーによって設定されたユーザー情報を一定期間保存するための Cookie ファイルを持ちます。クライアントで Windows システムを使用してサーバー内のスクリプトを参照すると仮定すると、Cookie ファイルは「C:Documents and Settings ユーザー名 Cookies」フォルダーに保存されます。 Cookieは通常のテキストファイルとして情報を記録していますが、テキストエディタなどで直接開いて閲覧することは可能ですが、Cookieファイル内の情報を直接読み取っても意味がありません。その代わりに、顧客が再度 Web サイトを訪問すると、ブラウザは Web サイトに対応するすべての Cookie 情報を自動的にサーバーに送信します。 PHP5 以降、クライアントから送信された Cookie 情報は $_COOKIE グローバル 配列 に自動的に保存されるため、各 PHP スクリプトでこの配列から対応する Cookie 情報を読み取ることができます。 $_COOKIE グローバル配列には、index 値として Cookie 識別名、要素としてコンテンツ値を使用して、HTTP 経由で渡されるすべての Cookie データのコンテンツが保存されます。

Cookie 設定スクリプトでは、その情報を初めて読み取っても有効になりません。Cookie の値を確認するには、更新するか次のページに移動する必要があります。Cookie は最初にクライアントに設定され、再度アクセスできるようにする必要があります。入手できるように送信してください。したがって、Cookie が正常に設定されたかどうかをテストするには、有効期限が切れる前に別のページからその値にアクセスできます。

PHP では、スーパーグローバル変数配列 $_COOKIE[] を通じてブラウザ側で Cookie の値を直接読み取ることができます。

コード例は次のとおりです:

<?php
  date_default_timezone_set(&#39;PRC&#39;);       //设置时区
 if(!isset($_COOKIE[&#39;time&#39;])){                //检测 Cookie 文件是否存在
    setcookie(&#39;time&#39;,date(&#39;y-m-d H:i:s&#39;));    //设置一个 Cookie 变量
    echo "第一次访问";
 }else{
    setcookie(&#39;time&#39;,date(&#39;y-m-d H:i:s&#39;),time()+60);   //设置保存  Cookie 失效的时间的变量
    echo "上次访问的时间为:".$_COOKIE[&#39;time&#39;];        //输出上次访问网站的时间
    echo &#39;<br>&#39;;
 }
    echo "本次访问的时间为:".date(&#39;y-m-d H:i:s&#39;);     //输出当前的访问时间
?>

上記のコードでは、まず isset() 関数を使用して Cookie ファイルが存在するかどうかを検出します。存在しない場合は、setcookie() 関数を使用して Cookie を作成し、対応する string を出力します。Cookie ファイルが存在する場合は、setcookie() 関数を使用してファイルの有効期限を設定し、ユーザーが最後にアクセスした時刻を出力します。最後に、現在位置の Web サイトの現在時刻がページ上に出力されます。

初めてインスタンスを実行するときは、Cookie ファイルが検出されないため、実行結果の図は次のようになります:

PHPでCookieを読み取る方法

Cookie 設定の有効期限 (60 秒) 前にユーザーが Web ページを再度更新するか、Web ページにアクセスした場合上記の例)、実行結果は次のとおりです:

PHPでCookieを読み取る方法

注: Cookie の有効期限が設定されていない場合、ブラウザを閉じると Cookie データは自動的に削除されます。 Cookieの有効期限が設定されている場合、コンピュータを再起動しても、有効期限が切れていない限り、ブラウザはCookieのデータを記憶し、再度Webサイトにアクセスしたときにアクセスされたデータ情報を取得します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。