php中cookie和session的区别与简易用法

一、区别
1、Cookie是完全保存在客户端。当客户端禁止cookie时将不能再使用;对服务端压力较小;可以指定生存周期;安全性差。
2、Session是存放在服务端的。但session id是存放在客户端的cookie中的,但php的session存放方法是多样化的,这样就算禁用cookie一样可以跟踪;服务端压力较大;关闭浏览器后,session失效;安全性较好。
二、cookie
1、设置。

    Setcookie(string name, string value, int expire,string path, string domain, int secure)

    name是cookie变量名称标识(必须),
    value是cookie变量的初始值(必须),
    expire 表示该cookie变量的有效时间(时间点,为空时cookie不会保存到客户端,当浏览器关闭,cookie会失效),
    path 为该cookie变量的相关路径,
    domain 表示cookie变量的网站,在此域名内cookie有效,
    secure 则需在 https 的安全传输时才有效。 
    例:SetCookie("name", "value",time()+3600, "/test", ".test.com", 1)

2、读取。echo $_COOKIE["cookiename"];类似与POST和GET。

3、删除 。SetCookie("cookiename", "")或SetCookie("cookiename", "value" , time()-1);

注:
1、必须在HTML文件的内容输出之前设置;
2、不同的浏览器对Cookie的处理不一致;
3、一个浏览器能创建的Cookie数量最多为30个,并且每个不能超过4KB,每个WEB站点能设置的Cookie总数不能超过20个(未验证);
4、首次访问页面时设置cookie,第二次访问时才能读取cookie值,因为cookie是保存在客户端,需由客户端传至服务端才能读取。
解决方法:设置cookie后,echo "<script>location.href='当前页面'</script>";

三、Session的配置

1、session_start();                    //初始化session.需在文件头部

2、$_SESSION[name]=value;  //配置Seeeion

3、echo $_SESSION[name];    //使用session

4、isset($_SESSION[name]);   // 判断

5、unset($_SESSION[name]);   //删除

6、session_destroy();             //删除所有session