PHP クッキー

Cookieはユーザーを識別するためによく使用されます。

クッキーとは何ですか?

Cookieはサーバーによって生成され、ユーザーエージェント(通常はブラウザ)に送信されます。ブラウザはCookieのキー/値を特定のディレクトリ内のテキストファイルに保存し、次回同じWebサイトがリクエストされたときに送信します。この Cookie はサーバーに提供されます (ブラウザが Cookie を有効にするように設定されている場合)。 Cookie の名前と値はサーバー側の開発者が定義できるため、サーバーはユーザーが正規のユーザーであるかどうか、再度ログインする必要があるかどうかなどを知ることができます。サーバーは、Cookie に含まれる情報を設定または読み取ることができます。サーバーとのユーザーのセッションのステータスを維持するための Cookie。

注意事項:

1. 異なるコンピューターでは Cookie を共有できません

2. 同じコンピューター上の異なるブラウザーでは Cookie を共有できません

4. 同じブラウザーであっても、同じドメイン名では、異なるパスの Cookie を共有することはできません。Cookie を作成するにはどうすればよいですか?

setcookie() 関数を通じて Cookie を作成し、成功した場合は TRUE を返し、それ以外の場合は FALSE を返します。

注: setcookie() 関数は <html> タグの前に配置する必要があります。

構文

setcookie(名前, 値, 有効期限, パス, ドメイン);

パラメータの説明:

パラメータ

説明

name Cookie 名

value オプションクッキーの値 expire オプション、有効期限、タイムスタンプ形式

path オプション、サーバー側の有効なパス、/ はドメイン名全体が有効であることを示します。デフォルトは、Cookie が現在設定されているときのページのパスです

domain オプション、 Cookie が有効なドメイン名

例 1

次の例では、「user」という名前の Cookie を作成し、値「php」を割り当てます。また、この Cookie は 1 時間後に期限切れになることも規定しています:

<?php
   setcookie("user", "php", time()+3600);
?>

& LT; 自動デコードを実行します。

例 2

別の方法で Cookie の有効期限を設定することもできます。これは秒を使用するよりも簡単な場合があります。

<?php
  $expire=time()+60*60*24*30;
  setcookie("user", "php", $expire);
?>


Cookieの値を取得するにはどうすればよいですか?

PHP の $_COOKIE 変数は、Cookie の値を取得するために使用されます。

次の例では、「user」という名前の Cookie の値を取得し、ページに表示します。下記の例では、 isset() 関数を使用して次のことを行います。 Cookie が設定されているかどうかを確認します:

<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<?php
if (isset($_COOKIE["user"]))
   echo "欢迎 " . $_COOKIE["user"] . "!<br>";
else
   echo "普通访客!<br>";
?>
</body>
</html>

Cookie を削除するにはどうすればよいですか?


Cookieの有効期限を以前の時点に設定することでCookieを削除できます:

削除されたインスタンス:
<?php
// 设置 cookie 过期时间为过去 1 小时
  setcookie("user", "", time()-3600);
?>

ヒント:

プロトコルの制限により、Cookieを設定する前にコンテンツをブラウザに出力することはできません

Cookie は現在のページ セットでは有効になりません。設定された Cookie にアクセスするには、有効期限が切れる前に別のページにアクセスする必要があります。

Cookie 情報はユーザーのコンピュータに保存されるため、Cookie が偽造され、Cookie のなりすましが発生する可能性があります。スプーフィングを防ぐために値を暗号化できます。 Cookie を読み取るときは、Cookie を復号化するだけです ブラウザが Cookie をサポートしていない場合はどうすればよいですか?

アプリケーションが Cookie をサポートしていないブラウザに対応する必要がある場合は、アプリケーション内のページ間で情報を渡すために他の方法を使用する必要があります。 1 つの方法は、フォームを介してデータを渡すことです (フォームとユーザー入力については、このチュートリアルの前の章で説明しています)。

ユーザーが「送信」ボタンをクリックすると、次のフォームはユーザー入力を「welcome.php」に送信します:

<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<form action="welcome.php" method="post">
名字: <input type="text" name="name">
年龄: <input type="text" name="age">
<input type="submit">
</form>
</body>
</html>

次のように「welcome.php」ファイルの値を取得します:

<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
欢迎 <?php echo $_POST["name"]; ?>.<br>
你 <?php echo $_POST["age"]; ?> 岁了。
</body>
</html>

Cookie制限の問題

多くのブラウザには Cookie の数に制限があります。ほとんどのブラウザでは、Web サイトに設定できる Cookie の数は 50 を超えてはいけないと規定されており、一部のブラウザでは Cookie の数が 30 に制限されています。一般に 4K サイズを超えることはできません。

Cookie のセキュリティの問題

インターネット カフェでインターネットを閲覧した後、コンピューターをシャットダウンしないと、コンピューターを使用した後にアクセスしたすべての Web サイトの履歴を他の人が見ることができます。 Webサイトが保存するCookieの内容ですが、重要なデータ(ユーザー名、パスワード、カード番号、携帯電話番号、ID番号など)がCookieに保存されている場合は大変危険です。

そのため、重要なデータをCookieに保存することはできず、保存する必要がある場合でもサーバーに依存する必要があります

学び続ける
||
<?php setcookie("user", "php", time()+3600); ?>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜