Cookie与Session

来源:互联网 发布:淘宝联盟论坛在哪里找 编辑:程序博客网 时间:2024/05/17 08:37

Cookie是什么,能做什么?

Cookie是Web服务器存储在用户本地的一个文件,当用户再次访问该网站时,网站会通过读取Cookie文件记录这位访客的特定信息(如账号、密码、位置等信息),从而使服务器迅速做出响应;
*可记录用户访问网页次数、输入过的信息;*可储存传递页面之间的变量

创建Cookie

setcookie("键","值",失效时间,"服务端有效路径","有效域名",是否通过HTTPS(1或0));

例子:
if(!isset($_COOKIE["visittime"])){setcookie("visittime",date("y-m-d H-i-s"));echo "欢迎第一次访问网站!";}else{setcookie("visittime",date("y-m-d H-i-s"),time()+10);echo "您上次访问时间为".$_COOKIE["visittime"];}

注意:若没有设置失效时间,则关闭浏览器就会自动删除Cookie数据

删除Cookie

setcookie("visittime","",0);//删除cookie,值设为空,失效时间设为0
注意:浏览器储存Cookie文件有限,单个文件大小限制为4KB

什么是Session?

每次启动一个Session对话时会生成一个唯一的SessionID,当关闭页面时ID会自动注销;记录用户登陆信息,以及用户所购买的商品。

创建会话

流程:启动会话——》注册——》使用——》删除
1.启动会话
session_start()    | |   session_register();

2.注册
$_SESSION["admin"] = null;

3.使用
$value = $_SESSION["admin"] ;

4.删除
unset($_SESSION["admin"] );//删除单个

$_SESSION = array(); //删除全部(赋空数组)

session_destroy();//销毁Session(销毁前先删除所有会话变量)

设置失效时间

setcookie(session_name,session_id,time()+60);

如果客户端禁止了Cookie

当客户端禁止Cookie时,session的页面传递会失效,有如下解决方法:

1.在登陆前提示用户打开Cookie
2.php.ini中设置session.use_trans_sid = 1,或者编译时打开-enable-trans-sid,让php自动跨页面传递session
3.通过get方法传递session(不能设置失效时间)
4.使用文件或数据库储存session,在页面传递手动调用

Session临时文件

如果不设置临时文件服务器会非常慢
session_save_path(./tmp/); //设置临时文件路径; (在start()之前调用);
session_start() ;

Session缓存

缓存时间单位为分钟





原创粉丝点击