您的位置:首页 > 编程语言 > PHP开发

PHP之cookie详解

2015-07-27 17:27 726 查看
cookie基本操作:

<span style="font-size:18px;"><?php
// 什么是会话:
// 打开浏览器,访问某个网站的很多页面(通过点击超连接), 当你关闭浏览器后,一个会话结束.
// cookie是保存在客户端.

header("Content-type: text/html; charset=utf-8");

//演示如何创建cookie信息
//把用户名和密码保存到客户端的cookie
//setCookie()这个函数用于保存cookie
//第一个参数表示cookie一个key 第二个参数表示 val,第三个参数表示cookie值在客户端中保存的时间,按秒计算
// key <-->value
// key <--->value
//.....
$time=date('Y-m-d H:i:s');
setCookie("name","wml",time()+3600);
setCookie("password","123456",time()+30);
setCookie("address","北京",time()+300);
setCookie("time","$time",time()+300000000);
echo "保存成功!";
// 对代码说明
// ① 当浏览器访问 cookie.php页面的时候,我们的服务器就会以
// Set-Cookie: name=wml; expires=Wed, 21-Sep-2011 07:53:25 GMT 回送http响应,当浏览器获取到该信息后,就会保存该cookie 的新到
// 本机的 c:/xxx/admin/cookies文件.
// ② 如果我们如果没有该时间(第三个参数)
// cookie不会保存到客户端,当浏览器的会话结束,我们的cookie就失效.
// ③ cookie只能保存字符串信息.
// ④ 客户端可以保存多个 key<==>value 对
// ④ cookie也可以保存中文,默认将会对中文进行 urlencode编码
// ⑥ cookie 可以有多个 键<==>值 对,可以给不同的键值 ,指定不同的有效时间.

// 从客户端获取保存的cookie信息 (查询)
//获取cookie信息
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
//获取指定的key对应的值
$name=$_COOKIE['name'];
$password=$_COOKIE['password'];
echo "name=".$name;
echo "<br>";
echo "password=".$password;
echo "<br>";

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

// 更新cookie信息
// 更新某个cookie key<==>val 实际上就是重新设置
// setCookie();
//更新
setCookie("address","天津",time()+300);
echo "把 键 address的值更新了";
echo "<br>";

// 删除cookie信息
//删除某个key 只需要把 time()-秒数
//setCookie("name","",time()-200);
echo "删除name key成功!";
echo "<br>";
//删除所有的 key
foreach($_COOKIE as $key=>$val){
//setCookie($key,"",time()-100);
}
echo "删除所有cookie成功!";
echo "<br>";

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

?></span>

利用cookie实现显示上次登录时间:

<span style="font-size:18px;"><?php
error_reporting(E_ALL^E_NOTICE);
//利用cookie实现显示上次登录时间
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set('PRC');
$time=$_COOKIE['login_time'];
if ($time==''){
$now_time=date('Y-m-d H:i:s');
setCookie("login_time","$now_time",time()+300000000);
}else{
echo "您上次登录时间是:".$time."<br>";
$now_time=date('Y-m-d H:i:s');
setCookie("login_time","$now_time",time()+300000000);
}
?></span>

利用cookie实现自动填充用户名密码:
登录界面:

<span style="font-size:18px;"><!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<h1>  登录界面</h1>
<div class="login" style="margin-top:50px;">
<form action="login.php" name="loginform" accept-charset="utf-8" id="login_form" class="loginForm" method="post">
<div class="uinArea" id="uinArea">
<label class="input-tips" for="u">帐号:</label>
<div class="inputOuter" id="uArea">
<input type="text"
value="<?php
error_reporting(E_ALL^E_NOTICE);

//利用cookie实现自动填写用户名密码
$username=$_COOKIE['username'];
if ($username!=='')
echo $username;
?>"
name="username"/>
</div>
</div>
<div class="pwdArea" id="pwdArea">
<label class="input-tips" for="p">密码:</label>
<div class="inputOuter" id="pArea">
<input type="password" id="p" name="pwd" value="<?php
error_reporting(E_ALL^E_NOTICE);
//利用cookie实现自动填写用户名密码
$password=$_COOKIE['password'];
if (isset($password))
echo $password;
?>"/>
</div>
</div>
<div>************************************************************************************</div>
<input type="radio" name="sex" value="yes">保存账号密码<br>

<div style="padding-left:50px;margin-top:20px;"><input type="submit" style="width:150px;" value="登 录" /></div>
</form>
</div>
</body>
</html></span>

login.php文件:

<span style="font-size:18px;"><?php
$username1=$_POST['username'];
$password1=$_POST['pwd'];
$sex=$_POST['sex'];
//$time=$_COOKIE['login_time'];
if ($sex=='yes'){
setCookie("username","$username1",time()+300000000);
setCookie("password","$password1",time()+300000000);
}else{
setCookie("username","",time()-200);
setCookie("password","",time()-200);
}
?></span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: