1. Cookie とセッションの概要と違い
多くの場合、Web サイト全体で訪問者のアクティビティを追跡し、その身元を自動的または半自動的に識別する必要があります (つまり、一般的に参照される Web サイトへのログインなどの機能)。このとき、Cookie とセッションを使用することがよくあります。追跡して判断します。
違い
セッション情報はサーバー側に保存されますが、セッションIDはクライアントのCookieに保存されます。もちろん、PHPのセッション保存方法は多様なので、Cookieが無効になっていても追跡できます
。Cookie は、IE Firefox などのクライアントに完全に保持されます。クライアントが Cookie を無効にすると、使用できなくなります。
2. Cookieの設定と適用
Setcookie(string name, string value, intexpired,string path, string domain, int secure);name は、通常のクッキー変数を使用するのと同じように、PHP で Cookie 変数を参照するために使用できます。変数名。 value は cookie 変数の初期値、expired は cookie 変数の有効期間を表し、domain は cookie 変数の Web サイトを表し、secure は https が安全に送信される場合にのみ有効です。
Cookie の受信と処理
PHP は、Cookie の受信と処理について非常に優れたサポートを備えています。は完全に自動であり、FORM 変数の原理と同じで、非常に簡単です。
たとえば、MyCookier という名前の Cookie を設定すると、PHP は WEB サーバーが受信した HTTP ヘッダーからそれを自動的に分析し、$myCookie という名前の通常の変数と同様の変数を形成します。この変数の値が Cookie の値になります。配列にも同じことが当てはまります。もう 1 つの方法は、PHP のグローバル変数 $HTTP_COOKIE_VARS 配列を参照することです。
例は次のとおりです: (これらが前のページで設定されており、まだ有効であると仮定します)
echo $CookieArray[0];
echo $_COOKIE["MyCookie"];
Cookieを削除します
既存の Cookie を削除するには、2 つの方法があります:
1.SetCookie("Cookie", "");
2.SetCookie("Cookie", "値" , time()-1 / time() );
Cookieの使用制限
1. HTML ファイルのコンテンツが出力される前に設定する必要があります。
2. ブラウザーによって Cookie の処理が異なるため、誤った結果が発生する場合があります。3. 制限はクライアント側にあります。ブラウザで作成できる Cookie の最大数は 30 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。
3. セッションの構成とアプリケーション
コードをコピーします
コードは次のとおりです:
if($_POST['name']&&$_POST['password']) //変数ユーザー名とパスワードが存在する場合、以下に Cookie を設定します
{ //Cookie の設定に使用されます
setcookie('id',$_POST [ 'name'],time()+3600);
setcookie('pass',$_POST['password'],time()+3600);
echo "<script>location.href='login.php ' </script>"; //Cookie を時間内に有効にします
}
if($_COOKIE['id']&&$_COOKIE['pass'])
{ //Cookie が正常に設定された後、表示に使用されますcookies
echo "ログインに成功しました!
ユーザー名: ".$_COOKIE['id']."
パスワード: ".$_COOKIE['pass'];
echo "
";
echo "Cookie をログアウト"; //二重引用符内、さらに引用符がある場合は一重引用符が必要です。
}
?>
<フォームアクション=""メソッド="投稿">
ユーザーID:
パスワード:
//セッション使用例
unset($_SESSION['id']);
unset($_SESSION['pass']);
}
if($_POST['name']&&$_POST['password'])
{
//セッションの設定に使用します
$_SESSION['id']=$_POST['name'];
$_SESSION[' pass']=$_POST['パスワード'];
}
if($_SESSION['id']&&$_SESSION['pass'])
{
echo "ログイン成功!
ユーザーID: ".$_SESSION['id']。"
ユーザーパスワード: ".$_SESSION['pass'];
echo "
";
echo "セッションをログアウト< / a>";
}
?>