PHP クッキー
Cookieはユーザーを識(shí)別するためによく使用されます。
クッキーとは何ですか?
Cookieはサーバーによって生成され、ユーザーエージェント(通常はブラウザ)に送信されます。ブラウザはCookieのキー/値を特定のディレクトリ內(nèi)のテキストファイルに保存し、次回同じWebサイトがリクエストされたときに送信します。この Cookie はサーバーに提供されます (ブラウザが Cookie を有効にするように設(shè)定されている場(chǎng)合)。 Cookie の名前と値はサーバー側(cè)の開(kāi)発者が定義できるため、サーバーはユーザーが正規(guī)のユーザーであるかどうか、再度ログインする必要があるかどうかなどを知ることができます。サーバーは、Cookie に含まれる情報(bào)を設(shè)定または読み取ることができます。サーバーとのユーザーのセッションのステータスを維持するための Cookie。
注意事項(xiàng):
1. 異なるコンピューターでは Cookie を共有できません
2. 同じコンピューター上の異なるブラウザーでは Cookie を共有できません
4. 同じブラウザーであっても、同じドメイン名では、異なるパスの Cookie を共有することはできません。Cookie を作成するにはどうすればよいですか?
setcookie() 関數(shù)を通じて Cookie を作成し、成功した場(chǎng)合は TRUE を返し、それ以外の場(chǎng)合は FALSE を返します。注: setcookie() 関數(shù)は <html> タグの前に配置する必要があります。
構(gòu)文setcookie(名前, 値, 有効期限, パス, ドメイン);
パラメータの説明:パラメータ
説明
name Cookie 名
value オプションクッキーの値 expire オプション、有効期限、タイムスタンプ形式
例 1 次の例では、「user」という名前の Cookie を作成し、値「php」を割り當(dāng)てます。また、この Cookie は 1 時(shí)間後に期限切れになることも規(guī)定しています:
<?php setcookie("user", "php", time()+3600); ?>
& LT; 自動(dòng)デコードを?qū)g行します。
例 2
別の方法で Cookie の有効期限を設(shè)定することもできます。これは秒を使用するよりも簡(jiǎn)単な場(chǎng)合があります。 <?php
$expire=time()+60*60*24*30;
setcookie("user", "php", $expire);
?>
。
PHP の $_COOKIE 変數(shù)は、Cookie の値を取得するために使用されます。
次の例では、「user」という名前の Cookie の値を取得し、ページに表示します。下記の例では、 isset() 関數(shù)を使用して次のことを行います。 Cookie が設(shè)定されているかどうかを確認(rèn)します:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(php.cn)</title> </head> <body> <?php if (isset($_COOKIE["user"])) echo "歡迎 " . $_COOKIE["user"] . "!<br>"; else echo "普通訪客!<br>"; ?> </body> </html>
Cookie を削除するにはどうすればよいですか?
Cookieの有効期限を以前の時(shí)點(diǎn)に設(shè)定することでCookieを削除できます:
削除されたインスタンス:
<?php // 設(shè)置 cookie 過(guò)期時(shí)間為過(guò)去 1 小時(shí) setcookie("user", "", time()-3600); ?>
ヒント:
プロトコルの制限により、Cookieを設(shè)定する前にコンテンツをブラウザに出力することはできません
Cookie は現(xiàn)在のページ セットでは有効になりません。設(shè)定された Cookie にアクセスするには、有効期限が切れる前に別のページにアクセスする必要があります。
Cookie 情報(bào)はユーザーのコンピュータに保存されるため、Cookie が偽造され、Cookie のなりすましが発生する可能性があります。スプーフィングを防ぐために値を暗號(hào)化できます。 Cookie を読み取るときは、Cookie を復(fù)號(hào)化するだけです ブラウザが Cookie をサポートしていない場(chǎng)合はどうすればよいですか?
アプリケーションが Cookie をサポートしていないブラウザに対応する必要がある場(chǎng)合は、アプリケーション內(nèi)のページ間で情報(bào)を渡すために他の方法を使用する必要があります。 1 つの方法は、フォームを介してデータを渡すことです (フォームとユーザー入力については、このチュートリアルの前の章で説明しています)。
ユーザーが「送信」ボタンをクリックすると、次のフォームはユーザー入力を「welcome.php」に送信します:
<html> <head> <meta charset="utf-8"> <title>php中文網(wǎng)(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中文網(wǎng)(php.cn)</title> </head> <body> 歡迎 <?php echo $_POST["name"]; ?>.<br> 你 <?php echo $_POST["age"]; ?> 歲了。 </body> </html>Cookie制限の問(wèn)題
多くのブラウザには Cookie の數(shù)に制限があります。ほとんどのブラウザでは、Web サイトに設(shè)定できる Cookie の數(shù)は 50 を超えてはいけないと規(guī)定されており、一部のブラウザでは Cookie の數(shù)が 30 に制限されています。一般に 4K サイズを超えることはできません。
Cookie のセキュリティの問(wèn)題インターネット カフェでインターネットを閲覧した後、コンピューターをシャットダウンしないと、コンピューターを使用した後にアクセスしたすべての Web サイトの履歴を他の人が見(jiàn)ることができます。 Webサイトが保存するCookieの內(nèi)容ですが、重要なデータ(ユーザー名、パスワード、カード番號(hào)、攜帯電話番號(hào)、ID番號(hào)など)がCookieに保存されている場(chǎng)合は大変危険です。
そのため、重要なデータをCookieに保存することはできず、保存する必要がある場(chǎng)合でもサーバーに依存する必要があります
。