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() ;