PHP 设置Cookie值注意项
Cookie 中的value值只能添加设置为String类型的字符串数据,但我们需要添加如数组,json串等其他类型的数据时,我们就要先对数据进行转换,再存入Cookie里了。
Cookie 存储数组,cookie存储数组类型的数据有多种方法,实质就是讲数组转换成字符串再存储。
第一种,将数组各个值用逗号拼接成字符串,随后将字符串存入cookie。读取时可以使用split()将字符串以逗号分割重新组成数组。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = $data['a'].",".$data['b'].",".$data['c']; //拼接成字符串
set_cookie('name',$str,3600);
$cstr = $_COOKIE['name'];
$cdata = split('[/,]',$cstr);
第二种,和上一种方法类似,使用 implode() 讲数组合并成一个字符串存入cookie,之后获取cookie值再使用 explode() 将字符串分割后生成数组。注意,使用explode时要保证字符串的首位不能是空(空格),不然会出现warning错误。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = implode(',',$data); set_cookie('name',$str,3600);
$cstr = $_COOKIE['name'];
$cdata = explode(',',$cstr);
第三种,对数组进行编码,之后获取时再进行解码。比如 serialize() 序列化和 unserialize() 反序列化操作。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
$str = serialize($data); set_cookie('name',$str,time()+3600);
$cstr = $_COOKIE['name'];
$cdata = unserialize($cstr);
第四种,Cookie 存储 json 字符串,使用 json_encode() 将数组转换成json字符串,再将json字符串存储到cookie中,最后获取时使用 json_decode() 转换回来即可。
$data = array(
'a'=>'aaa',
'b'=>'bbb',
'c'=>'ccc'
);
set_cookie('name',json_encode($data),time()+3600); $cstr = $_COOKIE['name'];
$cdata = json_decode($cstr);
PHP 设置Cookie值注意项的更多相关文章
- java 设置Cookie值
原文地址:http://blog.csdn.net/lansetiankong12/article/details/52622654 /** * 读取所有cookie * 注意二.从客户端读取Cook ...
- phalcon 设置cookie一直是httponly导致前端读取不到cookie的值
解决办法: 修改配置如果不好使,则暂时降低phalcon版本为3.1.2. 注意设置cookie的参数secure的值为false,否则js还是读取不到cookie
- JavaScript中设置cookie的值
cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方.JavaScript ...
- 如何设置Cookie 的值为中文的内容
默认情况下,cookie的值是不允许中文内容的.可以借助于java.net.URLEncoder先对中文字符串进行编码,将编码后的结果设为cookie值.当程序要读取cookie值时,先读取,然后使用 ...
- 登陆后设置cookie的方法
public void SetCookie(string userName, string role,string cookieValueName) {FormsAuthentication.Form ...
- 运用JS设置cookie、读取cookie、删除cookie
JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的.而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种 ...
- ComboBoxEdit设置选项值(单选 多选)
网上搜索的 例子 加 自己的 一点点补充 lookupedit 设置选项值: private void LookUpEditFormTest_Load(object sender, EventArgs ...
- JS设置cookie
cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScrip ...
- 解决:jquery ajax非首次请求Server端获取cookie值中文乱码问题
HttpCookie cookie = new HttpCookie("RealName", HttpUtility.UrlEncode("你想要设置的值")) ...
随机推荐
- Django框架——基础之模板系统(template文件夹)
---恢复内容开始--- 1. 常用语法 需要记住两组特殊符号:{{ }} 和 {% %}. 在运用到变量的时候使用{{ }},如果是跟逻辑相关的话就使用{% %}. 在Django模板(t ...
- Navicat安装、使用教程
下载地址:Navicat的安装包及破解文件 一. Navicat安装 Navicat既可安装在服务器端,也可以安装在客户端.安装在服务器端,导入数据时可使用默认用户,也可以使用远程用户:安装在客户端, ...
- Centos的yum源更换为阿里云源
1.备份 # mv /etc/yum.repos.d/CentOS-Base.repo # /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS- ...
- Django学习系列15:把POST请求中的数据存入数据库
要修改针对首页中的POST请求的测试.希望视图把新添加的待办事项存入数据库,而不是直接传给响应. 为了测试这个操作,要在现有的测试方法test_can_save_a_post_request中添加3行 ...
- Django学习系列14:第一个数据库迁移
在Django中,ORM的任务是模型化数据库. 创建数据库其实是由另一个系统负责的叫做迁移. 迁移的任务是根据你对models.py文件的改动情况,添加或删除表和列. 可以把迁移想象成数据库使用的版本 ...
- 免费自动化测试工具Katalon Studio入门
Katalon Studio 一.简介: Katalon Studio 是一个在网页应用.移动和网页服务方面功能强大的自动化测试解决方案.基于 Selenium 和 Appium 框架,Katalon ...
- 【BZOJ2752】【Luogu P2221】 [HAOI2012]高速公路
不是很难的一个题目.正确思路是统计每一条边被经过的次数,但我最初由于习惯直接先上了一个前缀和再推的式子,导致极其麻烦难以写对而且会爆\(longlong\). 推导过程请看这里. #include & ...
- 杀掉nginx进程
ps aux | grep nginx kill -INT 进程号(例如:2661)
- 【leetcode】1244. Design A Leaderboard
题目如下: Design a Leaderboard class, which has 3 functions: addScore(playerId, score): Update the leade ...
- springboot整合admin管理平台
server 端 <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp ...