ホームページ >バックエンド開発 >PHPチュートリアル >セッションとCookieの基本的な使い方の紹介
多くの場合、Web サイト全体で訪問者のアクティビティを追跡し、その ID (つまり、よく言及される Web サイトへのログインなどの機能) を自動的または半自動的に識別する必要があります。クッキーとセッションを使用して追跡と判断を行うことがよくあります。
セッション情報はサーバー側に保存されますが、セッションIDはクライアントのCookieに保存されます。もちろん、PHPのセッション保存方法は多様であるため、Cookieが無効になっている場合でも追跡できます。
Cookieとは、ユーザーを追跡・識別するために、リモートのブラウザ側にデータを保存する仕組みです。 Cookie は、IE Firefox などのクライアント側に完全に保持されます。クライアントが Cookie を無効にすると、Cookie は使用できなくなります。
Setcookie(string name, string value, int expire,string path, string domain, int secure);
ここで、name は Cookie 変数名の識別子です。これを使用して、通常の変数名を使用するのと同じように、PHP で Cookie 変数を参照できます。 value は cookie 変数の初期値、expired は cookie 変数の有効期間を表し、domain は cookie 変数の Web サイトを表し、secure は https が安全に送信される場合にのみ有効です。
例:
SetCookie("Cookie", "cookievalue", time()+3600, "/librarys", ".nowamagic.net", 1);
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"];
2. Cookie を削除します
既存の Cookie を削除するには、2 つの方法があります:
SetCookie ("Cookie ", "");
SetCookie("Cookie", "value" , time()-1 / time() );
3. Cookie の使用制限
が必要ですHTML ファイルの内容は出力前に設定されます
ブラウザーによって Cookie の処理に一貫性がなく、場合によっては誤った結果が発生することがあります。
制限はクライアント側にあります。ブラウザで作成できる Cookie の最大数は 30 で、各 Cookie は 4KB を超えることはできません。各 Web サイトで設定できる Cookie の総数は 20 を超えることはできません。
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 は php5 では使用されなくなりました。
Cookieの使用例:
if($_GET['out']) { //用于注销cookies setcookie('id',""); setcookie('pass',""); echo "<script>location.href='login.php'</script>"; //因为cookies不是及时生效的,只有你再次刷新时才生效,所以,注销后让页面自动刷新。 } if($_POST['name']&&$_POST['password']) //如果变量用户名和密码存在时,在下面设置cookies { //用于设置cookies setcookie('id',$_POST['name'],time()+3600); setcookie('pass',$_POST['password'],time()+3600); echo "<script>location.href='login.php'</script>"; //让cookies及时生效 } if($_COOKIE['id']&&$_COOKIE['pass']) { //cookies设置成功后,用于显示cookies echo "登录成功!<br />用户名:".$_COOKIE['id']."<br/>密码:".$_COOKIE['pass']; echo "<br />"; echo "<a href='login.php?out=out'>注销cookies</a>"; //双引号内,如果再有引号,需要用单引号。 } ?> <form action="" method="post"> 用户ID: <input type="text" name="name" /><br/><br/> 密码: <input type="password" name="password" /><br/><br /> <input type="submit" name="submit"> </form>
セッションの使用例:
<?php //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 "登录成功!<br/>用户ID:".$_SESSION['id']."<br />用户密码:".$_SESSION['pass']; echo "<br />"; echo "<a href='login.php?out=out'>注销session</a>"; } ?> <form action="login.php" method="post"> 用户ID: <input type="text" name="name" /><br/><br/> 密码: <input type="password" name="password" /><br/><br /> <input type="submit" name="submit"> </form>