ホームページ >バックエンド開発 >PHPチュートリアル >セッションとCookieの基本的な使い方の紹介

セッションとCookieの基本的な使い方の紹介

PHP中文网
PHP中文网オリジナル
2017-03-19 10:15:37973ブラウズ

Cookie とセッションの概要

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

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

Cookieとは、ユーザーを追跡・識別するために、リモートのブラウザ側にデータを保存する仕組みです。 Cookie は、IE Firefox などのクライアント側に完全に保持されます。クライアントが Cookie を無効にすると、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 の使用制限

  1. が必要ですHTML ファイルの内容は出力前に設定されます

  2. ブラウザーによって Cookie の処理に一貫性がなく、場合によっては誤った結果が発生することがあります。

  3. 制限はクライアント側にあります。ブラウザで作成できる 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=&#39;login.php&#39;</script>"; //因为cookies不是及时生效的,只有你再次刷新时才生效,所以,注销后让页面自动刷新。
}

if($_POST[&#39;name&#39;]&&$_POST[&#39;password&#39;]) //如果变量用户名和密码存在时,在下面设置cookies
{   //用于设置cookies
    setcookie(&#39;id&#39;,$_POST[&#39;name&#39;],time()+3600);
    setcookie(&#39;pass&#39;,$_POST[&#39;password&#39;],time()+3600);
    echo "<script>location.href=&#39;login.php&#39;</script>"; //让cookies及时生效
   
}
if($_COOKIE[&#39;id&#39;]&&$_COOKIE[&#39;pass&#39;])
{   //cookies设置成功后,用于显示cookies
    echo "登录成功!<br />用户名:".$_COOKIE[&#39;id&#39;]."<br/>密码:".$_COOKIE[&#39;pass&#39;];
    echo "<br />";
    echo "<a href=&#39;login.php?out=out&#39;>注销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[&#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>";
}


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