session 和 cookie 的区别和用法
作用:
session和cookie都是用于暂时记录用户数据的方式.
区别:
1.SESSION存储在服务器端,用户无法进行修改,比较安全,COOKIE存储在客户端,用户可以进行修改,不安全。
2.Session会在一定时间内保存在服务器上,会占用服务器资源。Cookie存储在用户windows下的Temp目录中的。
3.单个cookie在客户端的限制是4k
4.session遍历使用$_SESSION[] ,cookie遍历使用$_COOKIE[]
5.禁用过cookie后session无法使用
6.session使用的时候要加session_start()并且前面不能有任何输出.
<一>:session
启动session:
session_start();
PS:该函数需要放在文件最前端,前面不要有任何输出,最好顶头写(不要有前导空格).
设置session:
$_SESSION['name']='value';
PS:在使用的时候,直接使用$_SESSION[]方法设置值,其中"[ ]"部分为session的name,"="后面为值.
读取session:
echo $_SESSION['name'];
PS:不论是设置session还是读取session都要先开启session(使用session_start()).
销毁session:
1.关闭浏览器,自动销毁.
2.直接给 $_SESSION[]=''; 清空.
<二>:cookie
设置cookie:
bool setcookie(string name[,string value[,int expire[,string path[,string domain[,bool secure[,bool httponly]]]]]] ) name: cookie变量名
value: cookie变量的值
expire: 有效期结束的时间,
path: 有效目录,
domain: 有效域名,顶级域唯一
secure: 如果值为1,则cookie只能在https连接上有效,如果为默认值0,则http和https都可以.
例如:
setcookie('username','hello',time()+3600);
setcookie("username",'hello',time()+3600,"/~rasmus/",".paea.cn",1);
PS:setcookie前不能出现输出数据操作,否则就会出现错误类似于session_start().
读取cookie:
echo $_COOKIE['username'].'||';
echo $HTTP_COOKIE_VARS["username"];
PS:两种输出方式.
销毁cookie:
设置一个过去的时间来注销cookie
setcookie('username','hello',time()-3600);
PS:setcookie前不能出现输出数据操作,否则就会出现错误类似于session_start().