PHP完全独学マニュアルlogin
PHP完全独学マニュアル
著者:php.cn  更新時間:2022-04-15 13:53:54

PHP クッキー



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


クッキーとは何ですか?

Cookieはユーザーを識別するためによく使用されます。 Cookie は、サーバーがユーザーのコンピュータ上に残す小さなファイルです。同じコンピュータがブラウザを通じてページをリクエストするたびに、Cookie がコンピュータに送信されます。 PHP を使用すると、Cookie 値を作成および取得できます。


クッキーを作成するにはどうすればよいですか?

setcookie()関数はCookieを設定するために使用されます。

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

構文

setcookie(name, value, expire, path, domain);

例1

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

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

注: Cookie の値は、Cookie の送信時に自動的に URL エンコードされ、取得時に自動的にデコードされます。 (URL エンコードを防ぐには、代わりに setrawcookie() を使用します。)

例 2

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

<?php
$expire=time()+60*60*24*30;
setcookie("user", "php", $expire);
?>
<html>
.....
上記の例では、有効期限は 1 か月 (60 秒 * 60 分 * 24 時間 * 30 日 ) に設定されています。

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

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

次の例では、「user」という名前の Cookie の値を取得し、ページに表示します。

<?php
// 输出 cookie 值
echo $_COOKIE["user"];
// 查看所有 cookie
print_r($_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 を削除するときは、有効期限を過去の時点に変更する必要があります。

削除されたインスタンス:

<?php
// 设置 cookie 过期时间为过去 1 小时
setcookie("user", "", time()-3600);
?>

私のブラウザが 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>