PHP学习 --cookie

 cookie
cookie的初步介绍
1. cookie是保存在客户端.
2. 画图说明

3. cookie的基本使用
3.1 如何创建cookie
代码cookie1.php

<?php

//演示如何创建cookie信息
//把用户名和密码保存到客户端的cookie
//这个函数用于保存cookie
//第一个参数表示cookie一个key 第二个参数表示 val,第三个参数表示cookie值,在
//客户端保存时间,按秒计算
// key <-->value
// key <--->value
//.....
setCookie("name","shunping",time()+3600);
setCookie("password","12345",time()+30);
setCookie("address","北京",time()+300);
echo "保存成功!";

?>

对代码说明
① 当浏览器访问 cookie1.php页面的时候,我们的服务器就会以
Set-Cookie: name=shunping; expires=Wed, 21-Sep-2011 07:53:25 GMT 回送http响应,当浏览器获取到该信息后,就会保存该cookie 的新到
本机的 c:/xxx/admin/cookies文件.
② 如果我们如果没有该时间(第三个参数)
cookie不会保存到客户端,当浏览器的会话结束,我们的cookie就失效.
③ cookie能保存什么样的信息,就是字符串.
④ 客户端可以保存多个 key<==>value 对
④ cookie也可以保存中,默认将会对中文进行 urlencode进行编码
⑥ cookie 可以有多个 键<==>值 对,可以给不同的键值 ,指定不同的有效时间.

3.2 如何从客户端获取保存的cookie信息
代码:
<?php

//获取cookie信息

echo "<pre>";
print_r($_COOKIE);
echo "</pre>";

//获取指定的key对应的值
$name=$_COOKIE['name'];

echo "name=".$name;
?>

对代码说明:
① 如果cookie有效时间到,则不能取出.
② 客户端cookie信息是怎样传递给服务器
通过 http协议的
Cookie: name=shunping
这个机制是http协议 规定

3.3如何更新cookie信息

更新某个cookie key<==>val 实际上就是重新设置
setCookie();
<?php


//更新
setCookie("address","tianjing",time()+300);
echo "把 键 address的值更新了";

?>
3.4删除cookie信息

① 指定删除某个 key<==>value
② 删除所有的 key<===>value

<?php

//指定删除某一个 key<==>val
//如果要删除某个key 只需要把 time()-秒数
setCookie("name","",time()-200);
echo "删除name key成功!";

//如何删除所有的
foreach($_COOKIE as $key=>$val){
setCookie($key,"",time()-100);
}
echo "删除所有cookie成功!";
?>

☞ 如果你删除的 cookie的 key<==>value 没有删除完,则这个cookie在客户端保留,如果你把这个网站的所有cookie都删除,则浏览器会把 cookie文件删除.



实际运用一下我们的cookie技术,完成下面一个任务
:
如果用户是第一次访问该页面,则提示,你是第一次访问该页面,如果第二次后,则显示上次登陆时间:



在 雇员管理系统中增加:
登录empManage.php页面时候,显示该用户登录的上一次时间


☞ 有肯能,你在使用 显示上次登陆时间的方法的时候,会提示一个时区错误,why? 需要我们设置时区
1. 在php文件中设置
date_default_timezone_set("Asia/Chongqing");
2. 在php.ini文件中

date.timezone = Asia/Chongqing


完成新的功能:
 打开登录页面的时候,自动填写该用户的用户名和密码

loginProcess.php
//3. 获取用户是否选中了保存id
if(empty($_POST['keep'])){
if(!empty($_COOKIE['id'])){
setcookie("id",$id,time()-100);
}
}else{
setcookie("id",$id,time()+7*2*24*3600);
}
在common.php添加一个函数
function getCookieVal($key){

if(empty($_COOKIE[$key])){
return "";
}else{
return $_COOKIE[$key];
}

}
在login.php中添加了
value="<?php echo getCookieVal("id"); ?>"


posted @ 2012-11-28 20:29  sfshine  阅读(200)  评论(0编辑  收藏  举报