JavaScript >> Javascript 文檔 >  >> jQuery

MicroTut:使用 jQuery 和 PHP 獲取和設置 Cookie

HTTP 是一種無狀態協議,這意味著您向網站發出的每個請求都是獨立的,因此無法單獨保存數據。但這種簡單性也是其在網絡早期被廣泛採用的原因之一。

但是,有一種方法可以在請求之間以 cookie 的形式保存信息。這樣您就可以擁有有效的會話管理和持久數據。

有兩種使用 cookie 的方法 - 服務器端(PHP、ASP 等)和客戶端(JavaScript)。在本篇 MicroTut 中,我們將了解如何在 PHP 和 JavaScript 中創建和讀取 cookie。

Cookie 和 PHP

設置 cookie

要在 PHP 中創建 cookie,您需要使用 setcookie 功能。它有很多參數(除了第一個都是可選的,可以省略):

setcookie(
    'pageVisits',               // Name of the cookie, required
    $visited,                   // The value of the cookie
    time()+7*24*60*60,          // Expiration time, set for a week in the future
    '/',                        // Folder path the cookie will be available for
    'demo.tutorialzine.com'     // Domain to which the cookie will be bound
);

如果你通過 0 作為過期時間(這是默認行為),cookie 將在瀏覽器重新啟動時丟失。 "/" 參數表示它將可用於域的所有目錄(您可以選擇將 cookie 綁定到單個目錄,例如 /admin/ 作為參數)。

有兩個額外的參數可以傳遞給函數,這裡沒有給出。它們用布爾值指定。第一個表示 cookie 將僅在安全的 HTTPS 連接上傳輸,第二個表示 cookie 將無法通過 JavaScript 訪問(在 PHP 5.2 中引入)

對於大多數實際用途,您只需要前四個參數,省略其餘參數。

讀取cookies

用 PHP 讀取 cookie 要簡單得多。傳遞給腳本的所有 cookie 都在 $_COOKIE 中可用 超全局數組。在我們的示例中,要讀取 cookie,我們將編寫以下代碼:

$visits = (int)$_COOKIE['pageVisits']+1;
echo "You visited this site: ".$visits." times";

值得一提的是,使用 setcookie 設置的 cookie 在 下一頁加載 的 $_COOKIE 數組中可用 ,這是你應該注意的。

刪除 cookie

要刪除 cookie,只需使用 setcookie 並給它一個過去的時間作為到期日期。

setcookie(
    'pageVisits',
    $visited,
    time()-7*24*60*60,      // One week in the past. The cookie will be deleted
    '/',
    'demo.tutorialzine.com'
);

Cookie 和 jQuery

要在 jQuery 中使用 cookie,您需要特殊的 Cookie 插件。

設置 cookie

使用 Cookie 插件設置 cookie 非常直觀:

$(document).ready(function(){

    // Setting a kittens cookie, it will be lost on browser restart:
    $.cookie("kittens","Seven Kittens");

    // Setting demoCookie (as seen in the demonstration):
    $.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'demo.tutorialzine.com'});

    // "text" is a variable holding the string to be saved
});

讀取cookies

讀取 cookie 更加簡單。只需調用 $.cookie() 帶有單個 cookie-name 參數的函數,並將返回 cookie 的值:

$(document).ready(function(){

    // Getting the kittens cookie:
    var str = $.cookie("kittens");

    // str now contains "Seven Kittens"
});

刪除 cookie

要刪除 cookie,請再次使用 $.cookie() 函數,但傳遞 null 作為它的第二個參數。

$(document).ready(function(){

    // Deleting the kittens cookie:
    var str = $.cookie("kittens",null);

    // No more kittens
});

總結一下<​​/h2>

在這個 MicroTut 中,我們了解了設置和讀取 cookie 數據。這是一個注意您不應存儲的好地方 cookie 中的任何敏感信息,例如用戶名或密碼,因為它們在每次頁面加載時作為常規標題傳輸,並且很容易被不法分子嗅探。但是,通過適當的預防措施,您可以通過這種簡單的技術實現大量的交互性。


Tutorial JavaScript 教程
  1. 是時候反思一下了

  2. 2019 年 react-native-web 的狀態

  3. 打字稿中的 Object.freeze / Object.seal

  4. 惰性屬性介紹

  5. 後端開發人員的 Javascript 開發簡明指南

  6. 在 Vue.js 中構建雙選控件

  7. Symfony 中的 Ajax 和 Jquery

  1. Var, Let, Cons 變量聲明

  2. 將 PostgreSQL 與 Node.js 和 node-postgres 一起使用

  3. 涵蓋這些主題使您成為 JavaScript 面試老闆 - 第 2 部分

  4. 獲取推送令牌的 nativescript-firebase 問題

  5. 如何在javascript中定義自定義排序功能?

  6. Yhee:Chrome 的時間跟踪瀏覽器擴展

  7. MongoDB(社區)您可以訪問公共 API 嗎?

  1. 1 行代碼:如何駝峰化字符串

  2. 使用 Node.js 進行網頁抓取簡介

  3. JavaScript 之旅:Web3 應用程序

  4. JAMstack MDX 甲板