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('PRC'); //设置时区 if(!isset($_COOKIE['time'])){ //检测 Cookie 文件是否存在 setcookie('time',date('y-m-d H:i:s')); //设置一个 Cookie 变量 echo "第一次访问"; }else{ setcookie('time',date('y-m-d H:i:s'),time()+60); //设置保存 Cookie 失效的时间的变量 echo "上次访问的时间为:".$_COOKIE['time']; //输出上次访问网站的时间 echo '<br>'; } echo "本次访问的时间为:".date('y-m-d H:i:s'); //输出当前的访问时间 ?>
上記のコードでは、まず isset() 関数を使用して Cookie ファイルが存在するかどうかを検出します。存在しない場合は、setcookie() 関数を使用して Cookie を作成し、対応する string を出力します。Cookie ファイルが存在する場合は、setcookie() 関数を使用してファイルの有効期限を設定し、ユーザーが最後にアクセスした時刻を出力します。最後に、現在位置の Web サイトの現在時刻がページ上に出力されます。
初めてインスタンスを実行するときは、Cookie ファイルが検出されないため、実行結果の図は次のようになります:
Cookie 設定の有効期限 (60 秒) 前にユーザーが Web ページを再度更新するか、Web ページにアクセスした場合上記の例)、実行結果は次のとおりです:
注: Cookie の有効期限が設定されていない場合、ブラウザを閉じると Cookie データは自動的に削除されます。 Cookieの有効期限が設定されている場合、コンピュータを再起動しても、有効期限が切れていない限り、ブラウザはCookieのデータを記憶し、再度Webサイトにアクセスしたときにアクセスされたデータ情報を取得します。
以上がPHPでCookieを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。