PHP Cookie
Cookie はユーザーを識別するためによく使用されます。
Cookie とは?
Cookie はユーザーを識別するためによく使用されます。Cookie はサーバーがユーザーのコンピューター上に残す小さなファイルです。同じコンピューターがブラウザーを介してページをリクエストするたびに、そのコンピューターは Cookie を送信します。PHP を使用すると、Cookie の値を作成および取得できます。
Cookie を作成するには?
setcookie() 関数は Cookie を設定するために使用されます。
注記:setcookie() 関数は <html> タグの前に置く必要があります。
構文
setcookie(name, value, expire, path, domain);
例 1
次の例では、名前が "user" の Cookie を作成し、それに値 "サンプル" を代入します。また、この Cookie は 1 時間後に期限切れになるように設定します。
<?php
setcookie("user", "サンプル", time()+3600);
?>
<html>
.....
注記:Cookie を送信するとき、Cookie の値は自動的に URL エンコードされ、取得時に自動的にデコードされます。(URL エンコーディングを防ぐには、代わりに setrawcookie() を使用してください。)
例 2
別の方法で Cookie の有効期限を設定することもできます。これは、秒で指定する方法よりも簡単かもしれません。
<?php
$expire=time()+60*60*24*30;
setcookie("user", "サンプル", $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>サンプル(example.com)</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つの方法は、フォームを介してデータを渡すことです(フォームとユーザー入力については、このチュートリアルの前の章で説明しました)。
次のフォームは、ユーザーが "Submit" ボタンをクリックすると、ユーザー入力を "welcome.php" に送信します:
<html> <head> <meta charset="utf-8"> <title>サンプル(example.com)</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>サンプル(example.com)</title> </head> <body> 欢迎 <?php echo $_POST["name"]; ?>.<br> 你 <?php echo $_POST["age"]; ?> 岁了。 </body> </html>その他の拡張機能