1>Cookie の概要
Cookie は、Cookie を通じてクライアントのブラウザに保存されるデータです。通常、Cookie は HTTP ヘッダーを通じてサーバーからクライアントに返されます。 Cookie は HTTP ヘッダーに存在するため、ほとんどの Web プログラムは Cookie 操作をサポートします。
_COOKIE[‘key’] の形式で自動的に保存し、特定の Cookie 値を読み取ります。
PHP では、Cookie は setcookie 関数を通じて設定されます。ブラウザから返された Cookie については、PHP はそれを
セッションを使用する場合、通常、ユーザーを識別するためのセッション ID を保存するために Cookie が使用されます。Cookie には有効期限があり、有効期限が切れると、Cookie はクライアントから自動的に削除されます。
2>Set cookie
setcookie()
意味: setcookie() 関数には 7 つのパラメータがあります (一般的に使用されるパラメータは 5 つだけです)。
構文: setcookie(name, value,expired, path, domain, secure, httponly)
戻り値: この関数を呼び出す前に出力がある場合、setcookie() は失敗し、FALSE を返します。 setcookie() が正常に実行されると、TRUE が返されます。これは、ユーザーが Cookie を受け入れるかどうかを示すものではありません。
パラメータ:
value, time()+3600, “path/”, “baidu.com” に相対) // パスとドメインを設定します。
名前:
Cookie の名前。$_COOKIE[‘name’] を通じてアクセスします。
値:
クッキーの値
有効期限:
クッキーの有効期限が切れる時刻。これは秒単位の Unix タイムスタンプです。 time() 関数に有効期限が切れるまでの秒数を加えて設定できます。または、mktime() を使用することもできます。 0 に設定するか省略した場合、Cookie はセッションの終了時 (ブラウザが閉じられたとき) に期限切れになります。デフォルトは 0 です。
パス:
(有効なパス) パスが「/」に設定されている場合、Web サイト全体が有効になります。「/foo/」に設定されている場合、Cookie は /foo/ ディレクトリと、/foo/bar/ などのすべてのサブディレクトリにのみ存在します。利用可能なドメイン。
ドメイン:
(Cookie が使用可能なドメイン) デフォルトでは、ドメイン全体 (そのすべてのサブドメインを含む) で Cookie を使用できるようにするには、値をドメイン名に設定するだけです (この場合、 「例.com」)。
安全:
この Cookie がクライアントの安全な HTTPS 接続経由でのみ送信できることを示します。 TRUE に設定すると、安全な接続が存在する場合にのみ Cookie が設定されます。サーバー側では、プログラマは安全な接続でのみこの種の Cookie を送信できます (例:
3>Cookieの削除と有効期限
PHPにはCookieを削除する機能はありませんが、その代わりにCookieの有効期限を現在時刻よりも前に設定することで、自動的にCookieの有効期限が切れ、Cookieが削除されます。
4> Cookie が空かどうかを判断する
isset()
意味: 特定の Cookie が存在するかどうかを判断します。
構文: isset (対応する cookie 属性);
戻り値: true/false
setcookie("name","SYN");if( isset( $_COOKIE["name"])){ echo $_COOKIE["name"]; }else{ echo "不存在"; }
cookie:
1. クライアントにデータを保存し、ユーザーとサーバー間の接続を確立すると、通常は多くの問題を解決できますが、Cookie には依然としていくつかの制限があります:
2. Cookie は比較的安全性が低く、簡単に盗まれる可能性があり、Cookie 詐欺につながります
3. 1 つの Cookie の値は最大 4K までしか保存できません
4. 各リクエストにはネットワーク送信が必要であり、帯域幅を占有しますsession:
1. ユーザーのセッション データをサイズ制限なしでサーバーに保存します
2. ユーザーの識別は session_id によって実行されます。デフォルトでは、PHP セッション ID は cookie によって保存されます
//开始使用sessionsession_start();//设置一个session$_SESSION['test'] = time();//显示当前的session_idecho "session_id:".session_id();echo "<br>";//读取session值echo $_SESSION['test'];//销毁一个sessionunset($_SESSION['test']);echo "<br>"; var_dump($_SESSION);
1>セッションの使用法
まず session_start メソッドを実行してセッションを開き、次に使用しますグローバル変数 $ _SESSION はセッションの読み取りと書き込みを行います。デフォルトでは、セッションはファイルの形式でサーバーに保存されるため、ページ上でセッションが開かれると、セッション ファイルが排他的に占有され、現在のユーザーの他の同時アクセスが実行できなくなります。待って。この問題は、キャッシュまたはデータベース ストレージを使用することで解決できます。
セッションは、設定される値を自動的にエンコードおよびデコードするため、データやオブジェクトを含むあらゆるデータ型をサポートできます。
session_start();$_SESSION['ary'] = array('name' => 'jobs');$_SESSION['obj'] = new stdClass(); var_dump($_SESSION);
2>セッションを削除して破棄
unset()
PHP では、unset 関数を使用して特定のセッション値を削除します。削除後、その値はグローバル変数 $_SESSION から削除され、アクセスできなくなります。
session_start();$_SESSION['name'] = 'jobs';unset($_SESSION['name']);echo $_SESSION['name']; //提示name不存在
すごいsession_destroy()
session_destroy 関数はすべてのデータを削除しますが、session_id はまだ存在します。
特別な注意:
_SESSION は空のみなので、$_SESSION をすぐに破棄する必要がある場合は、unset() を使用できます。
session_destroy() はグローバル変数をすぐには破棄しません
3>セッションを使用してユーザーのログイン情報を保存します
登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差别在于session可以方便的存取多种数据类型,而cookie只支持字符串类型,同时对于一些安全性比较高的数据,cookie需要进行格式化与加密存储,而session存储在服务端则安全性较高。
<?phpsession_start();//假设用户登录成功获得了以下用户数据$userinfo = array( 'uid' => 1011, 'name' => 'spark', 'email' => '1637167XX@qq.com', 'sex' => 'F'); header("content-type:text/html; charset=utf-8");/* 将用户信息保存到session中 */$_SESSION['uid'] = $userinfo['uid'];$_SESSION['name'] = $userinfo['name'];$_SESSION['userinfo'] = $userinfo;//* 将用户数据保存到cookie中的一个简单方法 */$str =serialize($userinfo); //将用户信息序列化setcookie('userinfo', $str);
了解更多关于序列化serialize;
相关推荐:
以上がPHP セッション制御セッションと Cookie の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。