ホームページ  >  記事  >  バックエンド開発  >  PHP での Cookie とセッションの使用方法の詳細な紹介

PHP での Cookie とセッションの使用方法の詳細な紹介

高洛峰
高洛峰オリジナル
2017-03-22 17:23:021714ブラウズ

多くの場合、Web サイト全体で訪問者のアクティビティを追跡し、その身元を自動的または半自動的に識別する必要があります (つまり、よく言及される Web サイトへのログインなどの機能)。このとき、Cookie とセッションを使用することがよくあります。追跡と判断

1. Cookie とセッションの概要と違い

多くの場合、Web サイト全体で訪問者のアクティビティを追跡し、その身元 (通常、ウェブサイトログイン)クラス機能)、現時点では追跡と判断にCookieとセッションを使用することがよくあります。

違い

セッション情報はサーバー側に保存されますが、セッションIDはクライアントのCookieに保存されます。もちろん、PHPのセッション保存方法は多様であるため、Cookieが無効になっていても追跡できます

Cookie はクライアント側で完全に維持されます。例: Cookie がクライアントで無効になっている場合、IE Firefox は使用できなくなります。

2. Cookie の設定とアプリケーション

Setcookie(string name, string value, intexpired,stringpath, string Domain, int secure);
ここで、name は cookie 変数名識別子であり、通常の変数名を使用するのと同じように、これを使用して PHP で cookie 変数を参照できます。 value は cookie 変数の初期値、expired は cookie 変数の有効期間を表し、domain は cookie 変数の Web サイトを表し、secure は https が安全に送信される場合にのみ有効です。

SetCookie("Cookie","cookievalue",time()+3600, "/forum",".php100.com", 1);
Cookie の受信と処理
PHP は Cookie の受信と処理について非常に優れたサポートを備えています。は完全に自動であり、FORM 変数と同じ原理を持ち、特に単純です。
たとえば、MyCookier という名前の Cookie を設定すると、PHP は WEB サーバーが受信した HTTP ヘッダーからそれを自動的に分析し、$myCookie という名前の通常の変数と同様の変数を形成します。この変数の値が Cookie の値になります。配列にも同じことが当てはまります。もう 1 つの方法は、PHP のグローバル変数 $HTTP_COOKIE_VARS 配列を参照することです。
例は次のとおりです: (これらが前のページで設定されており、まだ有効であると仮定します)

echo $MyCookie;
echo $CookieArray[0];
echo $_COOKIE["MyCookie"];
echo $HTTP_COOKIE_VARS [ "MyCookie"];
Cookie を削除する

既存の Cookie を削除するには、次の 2 つのメソッドがあります:

1. SetCookie("Cookie","");
2.SetCookie("Cookie", "value" , time( )-1 / time() );

Cookie の使用に関する制限事項

1. HTML ファイルのコンテンツを出力する前に設定する必要があります。
2. ブラウザーによって Cookie の処理に一貫性がなく、その結果としてエラーが発生することがあります。
3. 制限はクライアント側にあります。ブラウザで作成できる Cookie の最大数は 30 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。

3. セッションの設定とアプリケーション

コードは次のとおりです:


session_start(); //session
isset($_SESSION[name]); _SESSION[name]); //Delete
session_destroy(); //すべてのセッションを消費します

注: session_register( )、session_unregister、session_is_registered は php5

Cookie の使用例では使用されなくなりました

if($_GET['out '])

{ //Cookie をログアウトするために使用します

setcookie('id',"");

setcookie( 'pass',"");
echo "3f1c4e4b6b16bbbd69b2ee476dc4f83alocation.href='login.php' 2cacc6d41bbb37262a98f745aa00fbf0";//Cookie は時間内に有効にならないため、再度更新したときにのみ有効になります。そのため、ログアウト後にページが自動的に更新されるようにします。
}

if($_POST['name']&&$_POST['password']) //変数ユーザー名とパスワードが存在する場合、以下に Cookie を設定します
{ //Cookie の設定に使用されます
setcookie('id',$_POST [ 'name'],time()+3600);
setcookie('pass',$_POST['password'],time()+3600);
echo"3f1c4e4b6b16bbbd69b2ee476dc4f83alocation.href='login.php ' 2cacc6d41bbb37262a98f745aa00fbf0"; //Cookie を適時に有効にします
}
if($_COOKIE['id']&&$_COOKIE['pass'])
{ //Cookie が正常に設定されると、 Cookie を表示するために使用されます
echo "ログインに成功しました!df250b2156c434f3390392d09b1c9563ユーザー名: ".$_COOKIE['id']."16f5d64c4620967222088897ceda3d77Cookie をログアウト5db79b134e9f6b82c0b36e0489ee08ed" //さらに引用符がある場合は二重引用符内で囲みます。 、一重引用符は必須です。
}

?>
157bbac558a7833eedb56b4dcc52ac44
ユーザー ID:
548052c193c31614ea2afa3f78d6e281076402276aae5dbec7f672f8f4e5cc8113e5269f3c47445b4ec80f7d524113ed
パスワード:
ce09dd6c711d83f754b570f95d40c9b3076402276aae5dbec7f672f8f4e5cc81df250b2156c434f3390392d09b1c9563
d70b7f10a54717363b232a0501a6630a
f5a47148e367a6035fd7a2faa965022e

セッション使用例

<?php
//session用法实例
session_start();//启动session,必须放在第一句,否则会出错。
if($_GET[&#39;out&#39;])
{
     
    unset($_SESSION[&#39;id&#39;]);
    unset($_SESSION[&#39;pass&#39;]);
}
if($_POST[&#39;name&#39;]&&$_POST[&#39;password&#39;])
{   
   //用于设置session
    $_SESSION[&#39;id&#39;]=$_POST[&#39;name&#39;];
    $_SESSION[&#39;pass&#39;]=$_POST[&#39;password&#39;];
}
if($_SESSION[&#39;id&#39;]&&$_SESSION[&#39;pass&#39;])
{
    echo "登录成功!<br/>用户ID:".$_SESSION[&#39;id&#39;]."<br />用户密码:".$_SESSION[&#39;pass&#39;];
    echo "<br />";
    echo "<a href=&#39;login.php?out=out&#39;>注销session</a>";
}

?>

b29a1f442b187a32a8f43cd96586d030
ユーザーID:
a12c6ac81b25c233f0b2a02f27c33f07076402276aae5dbec7f672f8f4e5cc81076402276aae5dbec7f672f8f4e5cc81
パスワード:
14761130d4e9bfcfa7e10593f0695db4076402276aae5dbec7f672f8f4e5cc81df250b2156c434f3390392d09b1c9563
7c53702a2bf0be1eaf670e884b3f62e5
f5a47148e367a6035fd7a2faa965022e

以上がPHP での Cookie とセッションの使用方法の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。