PHP 5におけるCookieとSessionの使用の詳細
非常に多くの場合、閲覧者のサイト全体の活動を追跡し、彼らの身分を自動的にまたは半自動的に識別する必要があります(つまり、普段よく言われているサイトにログインするなどの機能)、この時、私たちはCookieとSessionを採用して追跡し、判断します.
区別する
Session情報はserver側に格納されますが、session idはclientクッキーに格納されます.もちろんphpのsession格納方法は多様化しており、cookieを無効にしても追跡できます.
Cookieはクライアントに完全に保持されています.例えば、IE firefoxはクライアントがcookieを禁止したときに使用できません.
2、Cookieの配置と応用
Setcookie(string name, string value, int expire,string path, string domain, int secure); ここでnameはクッキー変数名識別であり、phpでは通常の変数名と同様にクッキー変数を参照することができます.valueはcookie変数の初期値であり、expireはこのcookie変数の有効時間を表す.pathは、このクッキー変数の関連経路である.domainはクッキー変数を表すサイトです.secureはhttpsの安全な伝送時に有効である必要があります.
SetCookie("Cookie", "cookievalue",time()+3600, "/forum", ".php100.com", 1);CookiePHPの受信と処理はCookieの受信と処理に対するサポートが非常に良く、完全に自動的であり、FORM変数の原則と同様に、特に簡単である.例えばMyCookierというCookieを設定すると、PHPは自動的にWEBサーバから受信したHTTPヘッダからそれを分析し、普通の変数と同じ変数を形成します.$myCookieという変数で、この変数の値がCookieの値です.配列も同様に適用されます.もう一つの方法は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、制限はクライアントにある.1つのブラウザで作成できるCookieの数は最大30個で、各4 KBを超えてはならず、各WEBサイトで設定できるCookieの総数は20個を超えてはならない.3、Sessionの配置と応用
session_start(); // session.
$_SESSION[name]=value; // Seeeion
echo $_SESSION[name]; // session
isset($_SESSION[name]); //
unset($_SESSION[name]); //
session_destroy(); // session
注意:session_register(),session_unregister,session_is_registeredはphp 5では使用されません
//cookies使用例
if($_GET['out'])
{ // cookies
setcookie('id',"");
setcookie('pass',"");
echo "location.href='login.php' "; // cookies , , , 。
}
if($_POST['name']&&$_POST['password']) // , cookies
{ // cookies
setcookie('id',$_POST['name'],time()+3600);
setcookie('pass',$_POST['password'],time()+3600);
echo "location.href='login.php' "; // cookies
}
if($_COOKIE['id']&&$_COOKIE['pass'])
{ //cookies , cookies
echo " !
:".$_COOKIE['id']."
:".$_COOKIE['pass'];
echo "
";
echo "Cookiesの "; // , , 。
}
?>
//session使用例
//session
session_start();// session, , 。
if($_GET['out'])
{
unset($_SESSION['id']);
unset($_SESSION['pass']);
}
if($_POST['name']&&$_POST['password'])
{
// session
$_SESSION['id']=$_POST['name'];
$_SESSION['pass']=$_POST['password'];
}
if($_SESSION['id']&&$_SESSION['pass'])
{
echo " !
ID:".$_SESSION['id']."
:".$_SESSION['pass'];
echo "
";
echo "セッションの ";
}
?>