クッキーの使用法ログイン

クッキーの使用法

Cookie の作成

setcookie() 関数を使用して PHP で Cookie を作成します。構文形式は次のとおりです:

bool setcookie(string name[,string value[,intexpire[, string path[,string domain[,int secure]]]]])

Reading Cookie

は次のとおりです。 PHP で実行 スーパー グローバル配列 $_COOKIE[] を通じて、ブラウザ側の 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语言基础</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 "上次访问时间为:" . $_COOKIE["visittime"];
 echo "<br>";
}
echo "本次访问时间:" . date("y-m-d H:i:s");
?>
</body>
</html>


最初の実行結果:
Cookie を保存するのは初めてです
この訪問時間: 16-07-16 08:26:25

2 回目の実行結果:
最終訪問時間: 16 -07-16 08:26:25
この訪問時間: 16-07-16 08:27:25

上記のコードでは、まず isset() 関数を使用して、Cookie ファイルが存在するかどうかを検出します。存在しない場合は、 setcookie () 関数を使用して Cookie ファイルを作成し、存在する場合は Cookie の有効期限を 60 秒に設定します。

Cookieの削除

Cookieの作成時に有効期限が設定されていない場合、ブラウザを閉じるとCookieファイルは自動的に削除されます。ブラウザを閉じる前にCookieファイルを削除したい場合は、setcookie()関数を使用して削除する方法と、ブラウザ上で手動でCookieを削除する方法があります。以下に個別に紹介します。

1. setcookie() 関数を使用して Cookie を削除します

Cookie の削除は、基本的に Cookie の作成と同様であり、setcookie() 関数は Cookie の削除にも使用されます。 Cookie を削除するには、setcookie() 関数の 2 番目のパラメータを null 値に設定し、3 番目のパラメータ Cookie の有効期限をシステムの現在時刻よりも短く設定するだけです。

たとえば、Cookie の有効期限を現在時刻から 1 秒引いた時刻に設定するには、コードは次のようになります:

setcookie("name", "", time()-1);

上記のコードでは、 time() 関数 現在のタイムスタンプを秒単位で返します。有効期限から 1 秒を引くと、Cookie を削除する過去の時間が得られます。

2.ブラウザの Cookie を手動で削除します

Cookie を使用すると、Cookie はテキスト ファイルを自動的に生成し、IE ブラウザの Cookie 一時フォルダーに保存します。ブラウザの Cookie ファイルを削除するのは非常に便利な方法です。

Cookie のライフサイクル

Cookie に時間が設定されていない場合、そのライフサイクルはブラウザーのセッション中であることを意味します。IE ブラウザーを閉じる限り、Cookie は自動的に消えます。この種類の Cookie はセッション Cookie と呼ばれ、通常はハード ディスクではなくメモリに保存されます。

有効期限が設定されている場合、ブラウザは Cookie をハードディスクに保存し、再度 IE ブラウザを開いたときも有効期限が切れるまで有効です。

Cookie はクライアントのブラウザに長期間保存できますが、静的ではありません。ブラウザーは最大 300 個の Cookie ファイルを保存でき、各 Cookie ファイルは最大 4KB の容量をサポートするため、各ドメイン名は最大 20 個の Cookie をサポートします。制限に達すると、ブラウザーは自動的に Cookie をランダムに削除します。

私のブラウザが Cookie をサポートしていない場合はどうすればよいですか?

アプリケーションに Cookie をサポートしていないブラウザが含まれている場合は、他の方法を使用してアプリケーション内のあるページから別のページに情報を渡す必要があります。 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>


次のセクション
<!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语言基础</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 "上次访问时间为:" . $_COOKIE["visittime"]; echo "<br>"; } echo "本次访问时间:" . date("y-m-d H:i:s"); ?> </body> </html>
コースウェア