资讯专栏INFORMATION COLUMN

PHP的cookie与session的使用

DTeam / 1742人阅读

摘要:不同域名不同端口不同协议,只要符合其中之一都算跨域请求同域当请求的符合域名端口协议都相同的时候,就是同域请求同域策略是浏览器内部实现的一种安全机制。

cookie如何设置?如何获取?

php中向浏览器设置 cookie

setcookie($key ,$val [,$expire ,$path ,$domain ,$secure]);
注意:cookie只可以存字符串类型数据,而且在调用setcookie()前不能有任何输出

$expire int 过时时间
$path string 路径 表示哪些路径下的文件有权限读取该 cookie
$domain string 域名 只可以设置当前域名或者父级域名,不能设置子级或兄弟级域名
$secure bool 安全指数

php中获取 cookie 值

使用超全局数组 $_COOKIE  
例如:$_COOKIE["username"]
cookie 如何删除?
setcookie("key","",time()-1);
如何设置二维cookie? cookie注意事项?什么是共享cookie?

设置二维 cookie

setcookie("user[username]", "wtao");
setcookie("user[age]", "18");

cookie 注意事项

1、不同浏览器,cookie绝对不共享
2、不同域名,cookie绝对不共享 (sso可以解决)
相关内容

所谓共享cookie,其实就是在一个域名的前提下,所有顶级域名和子级域名共享cookie

如果在同一域名下,是非常容易实现单点登录的效果
什么是单点登录(SSO)?

由于 不同域名,cookie绝对不共享 的原因,所以出现 单点登录 技术

单点登录 是指:只要一个账号就可以访问阿里旗下支付宝,淘宝, 天猫等网站.站在企业的角度这样做有一个好处:只要有一个系统负责登录模块,其他的子系统就可以专注于自己系统的业务逻辑,需要的时候请求认证系统就可以.站在用户的角度好处在于只要一个账号就可以访问其公司旗下所有产品.

单点登录 主要解决的是 跨域登录问题,让www.a.com/www.b.com/www.c.com三个域名共享数据

单点登录(SSO)有哪几种实现? PHP的Session配置

session.save_handler = files //session保存处理器

session.save_path = "/tmp" //session保存路径

session.use_cookies = 1 //启用cookie来存储sessionid

session.name = PHPSESSID //存储sessionid的key

session.auto_start = 0 //自动启动session,推荐关闭

session.cookie_lifetime = 0 //cookie过期时间

手动开启session需要注意哪些问题
如果是基于cookie的,在使用session_start()函数开启session之前,不能有任何输出的内容

一次请求中,多次调用session_start()会有警告,所以一次请求只在开头调用一次session_start()函数

JS的跨域问题是什么?JS跨域问题与Cookie共享问题区别?

什么是跨域?什么是同源策略?什么是同域?

跨域: 由于安全原因浏览器JS进行同源策略限制,所以出现跨域问题。
不同域名、不同端口、不同协议,只要符合其中之一都算跨域请求

同域当请求的URL符合域名、端口、协议都相同的时候,就是 同域 请求

同域策略: 是浏览器内部实现的一种安全机制。当使用JS进行请求时,请求的URL地址浏览器上的URL地址必须 处于同域 才能请求

JavaScript跨域总结与解决办法

解决JS跨域问题的主流方法

1、JSONP 实现原理:利用带有src属性的                
阅读需要支付1元查看
<