您的位置:首页 > 编程语言 > PHP开发

php中session和cookie的使用及区别的注意点

2019-05-24 09:14 597 查看

一、cookie

1、什么是 Cookie?

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,能够创建并取回 cookie 的值。

2、cookie的使用

[code]setcookie(name, value, expire, path, domain);//设置cookie的值,setcookie() 函数必须位于 <html> 标签之前。
setcookie("user", "Alex Porter", time()+3600);//设置cookie的值
$uName=$_COOKIE['UserName'];//获取Cookie的值
setcookie("user", "", time()-3600);//当删除 cookie 时,应当使过期日期变更为过去的时间点。
setcookie($cookiename, ''); //删除
cookiesetcookie($cookiename, NULL); //删除cookie

3、Cookie的优缺点

优点:a.不需要服务器资源空间 b.持久时间更长
缺点:a.客户端大小受限制 b.用户禁用Cookie那么就废用了 c.不安全

二、session的使用

1、什么是 session?

在计算机中,尤其是在网络应用中,称为“会话控制”。生存时间为用户在浏览某个网站时,从进入网站到关闭这个网站所经过的这段时间。session机制采用的是在服务器端保持状态的方案,并且有自己对应的唯一标识session_id,区分不同用户之前的信息。session_start() 函数启动会话。

2、session的使用

[code]sesstion_start(); // 首先开启session
$_SESSION['user'] = 'username'; // 把username存在里面
echo $_SESSION['user']; // 直接输出 username
session_destroy(); // 销毁session

3、如何修改SESSION的生存时间

方法1:将php.ini中的session.gc_maxlifetime设置为9999重启apache。
方法2:

[code]$lifetime = 3600;    //一个小时
session_set_cookie_params($lifetime);
session_start();

方法3:

[code]session_start();
$lifeTime = 24*3600;
setcookie(session_name(), session_id(), time()+$lifeTime, '/');

4、session的优缺点

优点:唯一性、方便调用、不会过多占用资源,是存储在服务器的一组临时数据。一般情况下,我们在做用户登录时,会将用户数据存入session。这样,在任何页面都可以方便调用,而且 每个客户端会产生唯一的session_id,不会混肴。并且在关闭浏览器后,服务器会有session回收机制,自动删除过期session。
缺点:在客户端是以cookie方式保存的,禁用cookie在默认情况下session就没用了。

三、Session和cookie之间的联系和区别

1、session跟cookie都是用于记录用户的信息。

2、存储位置不同:session存储于服务器,cookie存储于浏览器。

3、Session是基于cookie的基础之上的。

4、cookie有存储上限,一个web站点向客户端发送的cookie不得超过20个,单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K。

5、安全性:session安全性比cookie高。

6、session为‘会话服务’,在使用时需要开启服务,cookie不需要开启,可以直接用。

7、Cookies适合做保存用户的个人设置,爱好等,Session适合做客户的身份验证。

8、session中保存的是对象,cookie中保存的是字符串。

9、session不能区分路径,同一个用户在访问一个网站期间,所有的session在任何一个地方都可以访问到。而cookie中如果设置了路径参数,那么同一个网站中不同路径下的cookie互相是访问不到的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: