最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

环球视讯!在PHP和JavaScript中设置Cookie、会话存储(SessionStorage)和本地存储(LocalStorage)

来源:博客园

A. Cookie介绍

Cookie:Cookie常用于识别用户,它是服务器留在用户计算机中的小文件(大小限制在4KB),每当相同的计算机通过浏览器请求页面时,它会同时发送Cookie,即Cookie是随HTTP事务一起被发送的,因此会浪费一部分发送Cookie时使用的带宽。与会话存储和本地存储较为不同的一点是,无论您需不需要在Cookie存储的数据,它都会在页面响应时于浏览器与服务器中相互传送。


(相关资料图)

B. 会话存储介绍

会话存储(SessionStorage):会话存储常用于临时保存窗口或标签页的数据。会话存储在同源的不同窗口下不可共享,但是与window.open()方法打开的窗口共享一个会话存储(SessionStorage),即您如果关闭页面窗口或在浏览器中创建新窗口,会话存储将失效,而不是指页面路由跳转。与Cookie不同的一点是,会话存储只会在需要的时候调用获取,并不会主动发送。

C. 本地存储介绍

本地存储(LocalStorage):本地存储常用于需要长时间保存的数据。本地存储数据在理论上会永久保存,除非用户或服务器删除此数据。本地存储在同源的不同窗口下可共享,在不同浏览器中不可共享。与Cookie不同的一点是,本地存储只会在需要的时候调用获取,并不会主动发送。

1. 在 PHP 中设置 Cookie

使用规范

在PHP中设置Cookie信息常使用setcookie函数,cookie函数。

接收时会进行URL解码。如果你不需要这样,可以使用setrawcookie函数代替。

需要注意的是,Cookie必须在其他信息发送前赋值,即应把Cookie赋值代码段放在其他代码段的前面。

新建Cookie

setcookie函数与setrawcookie函数参数解释

参数名称 参数选项 参数解释
name 必选 名称
value 必选
expire 可选 有效期
path 可选 服务器路径
domain 可选 作用域名
secure 可选 连接方式(是否以安全HTTPS连接)

setcookie函数与setrawcookie函数返回值解释

返回值 返回类型 返回值解释
true bool 设置成功
false bool 设置失败

新建、删除Cookie示范

获取Cookie

2. 在 PHP 中设置 会话存储

使用规范

在PHP中设置会话存储,应以session_start函数开始——值得注意的是,此函数必须在其他信息发送前调用,即应把其代码段放在其他代码段的前面,如以下示范:

设置会话存储

随后,我们可以用变量操作的方式来设置会话存储,如以下示范:

获取会话存储

我们可以用以下方式获取会话存储或将会话存储数值赋值到变量中。

3. 在 PHP 中设置 本地存储

目前仍未找到有效的PHP设置本地存储的方法,可以使用以下方法来借助JavaScript实现。

具体JavaScript实现步骤请查看【6. 在 JavaScript 中设置 本地存储】。

4. 在 JavaScript 中设置 Cookie

使用规范

在此处提醒,如您准备将JavaScript代码嵌入到HTML文件中,您需要以如下格式来嵌入JavaScript代码,而如果您将JavaScript代码写入到.JS格式文件中,则不需要此格式。本篇博客展示的JavaScript代码默认在.JS文件下编辑。(以后将不再提醒)

 <script type="text/javascript">    // 如果您的浏览器等支持默认<script>标签,    // 则您可将“ type="text/javascript" ”此句去除    【JavaScript代码】</script>
// .JS文件 【JavaScript代码】

新建、获取Cookie

在此提供两个快捷函数,您可以直接使用。原始标准方式如下第一、二行,具体值可参考函数参数或【1. 在 PHP 中设置 Cookie - 新建Cookie】的相关函数辅助理解。

// 标准设置格式,带【】的为需更改值document.cookie="【name】=【value】; expires=【time】; path=【】"; // 设置Cookie函数function setCookie(name,value,time){var d = new Date();d.setTime(d.getTime() + (time*1000));var expires = "expires=" + d.toGMTString();document.cookie = name + "=" + value + "; " + expires;} // 获取Cookie函数function getCookie(name){var name = name + "=";var ca = document.cookie.split(";");for(var i=0; i

setCookie函数参数解释

参数名称 参数选项 参数解释
name 必选 名称
value 必选
time 必选 有效期

(setCookie函数没有返回值。)

getCookie函数参数解释

参数名称 参数选项 参数解释
name 必选 要查询的Cookie名称

getCookie函数返回值解释

返回值 返回类型 解释
"" string 表示Cookie值查询失败或没有此Cookie
【具体值】 string 表示Cookie值查询成功,返回具体Cookie值

新建、删除Cookie示范

如PHP,新建Cookie和删除Cookie与PHP相关操作相差不多,删除Cookie即将Cookie作用时间提前——如下:

// 新建Cookiedocument.cookie = "name=value1; expires=Sun, 31 Dec 2025 12:00:00 UTC; path=/"; // 覆盖Cookiedocument.cookie = "name=value2; expires=Sun, 31 Dec 2025 12:00:00 UTC; path=/"; // 删除Cookiedocument.cookie = "name=value1; expires=Sun, 31 Dec 2022 12:00:00 UTC; path=/";获取Cookie// 基本语句getCookie(); // 参数:Cookie名称 // 实际应用getCookie("name"); // 变量赋值var name = getCookie("name");let name = getCookie("name");

5. 在 JavaScript 中设置 会话存储

使用规范

在JavaScrpit中,设置会话存储和设置本地存储的API是相同的。仅需将会话存储sessionStorage和本地存储localStorage部分相互转换即可。

查看是否支持会话存储

if (!window.sessionStorage) {    // ! window.sessionStorage返回true值,不支持sessionStorage    console.log("浏览器不支持sessionStorage"); } else {    // ! window.sessionStorage返回false值,支持sessionStorage}

新建、删除、获取会话存储

JavaScript有关会话存储的方法类别方法新建sessionStorage.setItem("name", "value");新建sessionStorage.name = "value";新建sessionStorage["name"] = "value";获取sessionStorage.getItem("name");获取sessionStorage.name;获取sessionStorage["name"];删除sessionStorage.removeItem(name); // 删除单个数据删除sessionStorage.clear(); // 清除所有数据

6. 在 JavaScript 中设置 本地存储

使用规范

在JavaScrpit中,设置会话存储和设置本地存储的API是相同的。仅需将会话存储sessionStorage和本地存储localStorage部分相互转换即可。

查看是否支持本地存储

if (!window.localStorage) {    // ! window.localStorage返回true值,不支持localStorage    console.log("浏览器不支持localStorage"); } else {    // ! window.localStorage返回false值,支持localStorage}

新建、删除、获取本地存储

参考【5. 在 JavaScript 中设置 会话存储 - 新建、删除、获取会话存储】。

关键词: 是否支持 参数名称 变量操作