一、区别

1、Cookie是完全保存在客户端。当客户端禁止cookie时将不能再使用;对服务端压力较小;可以指定生存周期;安全性差。

2、Session是存放在服务端的。但session id是存放在客户端的cookie中的,但php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪;服务端压力较大;关闭浏览器后,session失效;安全性较好。

二、优缺点:

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗

考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能

考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

5、所以个人建议:

将登陆信息等重要信息存放为SESSION

其他信息如果需要保留,可以放在COOKIE中

三、设置cookie

1.可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客户端直接发送http头来设置

例子:

<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value); /* 简单cookie设置 */
setcookie("TestCookie", $value, time()+3600); /* 有效期1个小时 */
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", ".example.com", 1); /* 有效目录 /~rasmus,有效域名example.com及其所有子域名 */
?>

2.读取cookie:

print $_COOKIE['TestCookie'];

3.删除cookie

只需把有效时间设为小于当前时间, 和把值设置为空.例如:

setcookie("name","",time()-1);

四、session的用法

1.设置session

<?php
//启动session的初始化
session_start();
//注册session变量,赋值为一个用户的名称
$_SESSION["username"]="skygao";
//注册session变量,赋值为一个用户的ID
$_SESSION["uid"]=1;
?>

2.读取session

<?php
// page2.php
session_start();
print $_SESSION['animal']; // 打印出单个session
var_dump($_SESSION); // 打印出page1.php传过来的session值
?>

3.删除session

<?php
session_destroy();            // 第一步: 删除服务器端session文件,这使用
setcookie(session_name(),'',time()-3600); // 第二步: 删除实际的session:
$_SESSION = array();           // 第三步: 删除$_SESSION全局变量数组
?>

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
意见
建议
发表
评论
返回
顶部