クッキーの使用法
Cookie の作成
setcookie() 関數(shù)を使用して PHP で Cookie を作成します。構(gòu)文形式は次のとおりです:
bool setcookie(string name[,string value[,intexpire[, string path[,string domain[,int secure]]]]])
Reading Cookie
は次のとおりです。 PHP で実行 スーパー グローバル配列 $_COOKIE[] を通じて、ブラウザ側(cè)の Cookie 値を直接読み取ります。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>PHP語(yǔ)言基礎(chǔ)</title> </head> <body> <?php date_default_timezone_set("PRC"); header("Content-Type:text/html; charset=gb2312"); if (!isset($_COOKIE["visittime"])) { setcookie("visittime", date("y-m-d H:i:s")); echo "這是第一次保存Cookie"."<br>"; } else { setcookie("visittime", date("y-m-d H:i:s"), time() + 60); echo "上次訪問(wèn)時(shí)間為:" . $_COOKIE["visittime"]; echo "<br>"; } echo "本次訪問(wèn)時(shí)間:" . date("y-m-d H:i:s"); ?> </body> </html>
最初の実行結(jié)果:
Cookie を保存するのは初めてです
この訪問(wèn)時(shí)間: 16-07-16 08:26:25
2 回目の実行結(jié)果:
最終訪問(wèn)時(shí)間: 16 -07-16 08:26:25
この訪問(wèn)時(shí)間: 16-07-16 08:27:25
上記のコードでは、まず isset() 関數(shù)を使用して、Cookie ファイルが存在するかどうかを検出します。存在しない場(chǎng)合は、 setcookie () 関數(shù)を使用して Cookie ファイルを作成し、存在する場(chǎng)合は Cookie の有効期限を 60 秒に設(shè)定します。
Cookieの削除
Cookieの作成時(shí)に有効期限が設(shè)定されていない場(chǎng)合、ブラウザを閉じるとCookieファイルは自動(dòng)的に削除されます。ブラウザを閉じる前にCookieファイルを削除したい場(chǎng)合は、setcookie()関數(shù)を使用して削除する方法と、ブラウザ上で手動(dòng)でCookieを削除する方法があります。以下に個(gè)別に紹介します。
1. setcookie() 関數(shù)を使用して Cookie を削除します
Cookie の削除は、基本的に Cookie の作成と同様であり、setcookie() 関數(shù)は Cookie の削除にも使用されます。 Cookie を削除するには、setcookie() 関數(shù)の 2 番目のパラメータを null 値に設(shè)定し、3 番目のパラメータ Cookie の有効期限をシステムの現(xiàn)在時(shí)刻よりも短く設(shè)定するだけです。
たとえば、Cookie の有効期限を現(xiàn)在時(shí)刻から 1 秒引いた時(shí)刻に設(shè)定するには、コードは次のようになります:
setcookie("name", "", time()-1);
上記のコードでは、 time() 関數(shù) 現(xiàn)在のタイムスタンプを秒?yún)g位で返します。有効期限から 1 秒を引くと、Cookie を削除する過(guò)去の時(shí)間が得られます。
2.ブラウザの Cookie を手動(dòng)で削除します
Cookie を使用すると、Cookie はテキスト ファイルを自動(dòng)的に生成し、IE ブラウザの Cookie 一時(shí)フォルダーに保存します。ブラウザの Cookie ファイルを削除するのは非常に便利な方法です。
Cookie のライフサイクル
Cookie に時(shí)間が設(shè)定されていない場(chǎng)合、そのライフサイクルはブラウザーのセッション中であることを意味します。IE ブラウザーを閉じる限り、Cookie は自動(dòng)的に消えます。この種類の Cookie はセッション Cookie と呼ばれ、通常はハード ディスクではなくメモリに保存されます。
有効期限が設(shè)定されている場(chǎng)合、ブラウザは Cookie をハードディスクに保存し、再度 IE ブラウザを開(kāi)いたときも有効期限が切れるまで有効です。
Cookie はクライアントのブラウザに長(zhǎng)期間保存できますが、靜的ではありません。ブラウザーは最大 300 個(gè)の Cookie ファイルを保存でき、各 Cookie ファイルは最大 4KB の容量をサポートするため、各ドメイン名は最大 20 個(gè)の Cookie をサポートします。制限に達(dá)すると、ブラウザーは自動(dòng)的に Cookie をランダムに削除します。
私のブラウザが Cookie をサポートしていない場(chǎng)合はどうすればよいですか?
アプリケーションに Cookie をサポートしていないブラウザが含まれている場(chǎng)合は、他の方法を使用してアプリケーション內(nèi)のあるページから別のページに情報(bào)を渡す必要があります。 1 つの方法は、フォームからデータを渡すことです (フォームとユーザー入力については、このチュートリアルの前半で説明しました)。
以下のフォームは、ユーザーが送信ボタンをクリックすると、ユーザー入力を「welcome.php」に送信します:
<html> <body> <form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html>
次のように「welcome.php」の値を取得します:
<html> <body> Welcome <?php echo $_POST["name"]; ?>.<br /> You are <?php echo $_POST["age"]; ?> years old. </body> </html>