第16讲:保存会话的技术之cookie(增、删、改、查)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.会话含义
打开浏览器,访问某个网站的很多页面,当你关闭浏览器后,一个会话结束。
2.会话技术
①cookie ②session
cookie
1.cookie是以字符串的形式保存在客户端的。
2.图解
3.cookie可以用来做什么
①保存上次登录的时间等信息
②保存用户名、密码,在一定时间内不用重复登录
③记录用户访问网站的喜好
④网站的个性化,比如定制网站的服务、内容
4.案例—>如何创建cookie(setcookie)
setcookie(“#1”,”#2”,time()+3600);
setcookie(“##1”,”##2”,time()+3600)
echo “保存成功”;
?>
①第一个参数表示cookie一个key(键);第二个参数表示一个val(内容);第三个数表示cookie值(时间),在客户端保存时间,按秒计算。
②key<---->val ;一个key 对应一个val;客户端的cookie 可以保存多个key<==>val 段。
③如果上述代码中没有时间参数,则cookie不会保存到客户端。
④val 中只能保存字符串;不能保存对象;且保存形式是明文的;所以重要的信息不能保存到cookie中去。(如果非要保存的话,要用md5()加密)
⑤cookie 也可以保存中文,默认将会对中文进行urlencode 编码。(可以使用urldecode 方式解码进行查看!!)
⑥cookie中的键值段(key<==>val)的时间可以不统一!!(session必须统一!!)
5.案例—>如何获取cookie信息($_COOKIE)
//获取全部cookie信息
echo “
”;”;print_r($_COOKIE);
echo”
//获取指定key的对应信息
$name=$_COOKIE[‘name’];
echo “name=”.$name;
?>
注:如果获取的cookie不存在,则为空。
6.如何更新cookie setcookie()
更新cookie相当于重新创建一个cookie;使用setcookie() 函数。
7.如何删除cookie
①如何删除指定cookie
setcookie(“#1”,””,time()-1);
注:第一个参数写入要删除的key;第二个参数写不写无所谓;时间参数减去秒数,秒数大小不固定。
②如何删除整体的cookie
foreach($_COOKIE as $key=$val){
setcookie($key,””,time()-1);
}
注:①用遍历的的方法删除所有的cookie
②当cookie全部被删除后;存放cookie的文件也会被删掉。
8.代码显示用户登录时间
if(!empty($_COOKIE['lasttime'])){
date_default_timezone_set("asia/chongqing") ; //设置时区
echo"你上次的登录时间是".$_COOKIE['lasttime'];
//更新时间
setcookie("lasttime",date("Y-m-d H:i:s"),time()+24*3600);
}else{
echo"你是第一次登陆";
//更新时间
setcookie("lasttime",date("Y-m-d H:i:s"),time()+24*3600);
}
?>
9.解决时区问题
①在php文件中设置
date_default_timezone_set("asia/chongqing") ;
②在php.ini文件中设置
date.timezone=Asia/Chongqing
10.案例是否保存用户名在本地注意事项
①cookie的写入与查询时都要判断其数值是否为空。
②注意代码的前后顺序。
11.cookie小结
①一个web站点可以给一个web浏览器发送多个cookie;一个web浏览器也可以存储多个web站点提供的cookie。
②如果一个cookie没有给定时间,那么它只会保存在浏览器的内存中;浏览器关闭了,内容便会消失。