对php的cookle 的理解,关于php COOKIE和SESSION的一些理解

web服务器是基于http协议的,而http协议是无状态的,导致任意两个请求之间没有联系。但是我们登录网站后,它却能记住我们的身份,这个过程中一定使用了某个标识来区别我们的身份。对于简单数据传输的我们可以使用URL上面的GET方式和HTTP的POST方式,对于大量的数据就显得比较麻烦了,因此我们用到了COOKIE和SESSION来跟踪不同的用户。

1.COOKIE技术 :

需要浏览器参与,保存在客户端。意思就是php服务端制造一个cookie数据交给浏览器保存,然后浏览器每次访问的时候都携带这个数据,服务器再根据这个数据做出不同的响应。setcookie(‘name‘,‘ming‘);   这句话的意思是在浏览器上设置一个变量name,值为ming,只能为字符串;它保存在浏览器上面,我们可以预定义数组变量$_COOKIE[‘name‘] 获得。当然,这里不仅仅是$_COOKIE[‘name‘],我们还可以获得浏览器上的其他COOKIE值。

COOKIE数据默认是临时COOKIE,也就是关闭浏览器CKKOIE随之消失.  我们可以设置它的有效期,例如:

setcookie(‘name‘,‘ming‘,time()+60*60);  设置为1个小时

setcookie(‘name‘,‘ming‘,PHP_INT_MAX);  设置为php最大时间值

COOKIE的有效路径是当前目录和后代目录。  我们可以通过第四个参数来设置

setcookie(‘name‘,‘ming‘,time()+60*60,‘/‘);  整站有效

在子域名之间是可以共享的

setcookie(‘name‘,‘ming‘,time()+60*60,‘/‘,‘www.demo.php‘);  在www.demo.php下所有子域名都可以访问

不能设置了马上就访问到,要等到改程序执行了,下次才能生效。

2.SESSION技术

前面的COOKIE是基于客户端的,每次请求都携带,不太安全,SESSION则是存放在服务端,它给每个客户端开辟一个空间,存放唯一标识PHPSESSID,这样就可以通过PHPSESSID来区分不同的客户端了,当浏览器第一次访问时PHPSESSID,会自动生成一个PHPSESSID,保存在COOKIE数组中。

首先开启php的session支持,在这之前不能有输出。

session_start();

SESSION[‘name‘] = ‘ming‘;  设置session变量

unset(SESSION[‘name‘)  删除该session变量

$_SESSION = array()  清空所有session

session_destroy()  只删除session文件  ,不清空session变量

为了完全删除session 还需要 setcookie(‘PHPSESSID‘,‘‘,time()-1);

session文件的存放路径可以通过php.ini  session.save_path 来设置。

下次写六个自定义session的处理函数

原文:http://www.cnblogs.com/tanxing/p/5008575.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值