首頁  >  文章  >  後端開發  >  PHP 中 Session 和 Cookie 差異?

PHP 中 Session 和 Cookie 差異?

Guanhui
Guanhui原創
2020-07-21 14:57:222592瀏覽

PHP 中 Session 和 Cookie 差異?

PHP 中 Session 和 Cookie 差異?

1、Cookie資料存放在客戶的瀏覽器中,Session資料存放在伺服器中;

2、Session根據瀏覽器進程存在,而Cookie的生存時間可以設定和調整;

3、Session必須藉助Cookie。

PHP Session 變數

當您在電腦上操作某個應用程式時,您會開啟它,做些什麼更改,然後關閉它。這很像對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程式。然而,在網路上問題出現了:由於 HTTP 位址無法保持狀態,Web 伺服器並不知道您是誰以及您做了什麼。

PHP session 解決了這個問題,它透過在伺服器上儲存使用者資訊以便隨後使用(例如使用者名稱、購買商品等)。然而,會話資訊是臨時的,在使用者離開網站後將被刪除。如果您需要永久儲存訊息,可以把資料儲存在資料庫中。

Session 的工作機制是:為每個訪客建立一個唯一的 id (UID),並基於這個 UID 來儲存變數。 UID 儲存在 cookie 中,或透過 URL 進行傳導。

使用範例

<?php//  表单提交后...$posts = $_POST;//  清除一些空白符号foreach ($posts as $key => $value) {
    $posts[$key] = trim($value);}$password = md5($posts["password"]);$username = $posts["username"]; $query = "SELECT `username` FROM `user` WHERE `password` = &#39;$password&#39; AND `username` = &#39;$username&#39;";//  取得查询结果$userInfo = $DB->getRow($query); if (!empty($userInfo)) {
    //  当验证通过后,启动 Seindex.html> 验证 session里的`admin`是否为 `true`<?php//  防止全局变量造成安全隐患$admin = false;//  启动会话,这步必不可少session_start();//  判断是否登陆if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true) {
    echo "您已经成功登陆";} else {
    //  验证失败,将 $_SESSION["admin"] 置为 false
    $_SESSION["admin"] = false;
    die("您无权访问");}?>

推薦教學:《PHP

以上是PHP 中 Session 和 Cookie 差異?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn