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

php操作cookie

2016-07-30 09:39 441 查看


cookie的“增删改查

用cookie1,2,3,4四个文件来说明 从这里开始第二节,其实就是围绕着“增删改查”来讲的,增添和查询就是通过cookie 的存取来实现的,在之前已经实践了。这下我们来讲一下cookie的更新和删除


更新数据

如何更新cookie信息,首先必须是是针对一个用户,setcookie会覆盖之间的记录,非常简单
<?php
//更新
setcookie("name","chengdu",time()+300);
echo "new record"
?>

自己可以试试哦,打开浏览器,发现果然变化了。


删除数据

其实删除数据是通过修改cookie的有效时间来实现的。

删除指定键值对
删除所有键值对 指定删除某一个 key<==>val

说白了其实就是减少它存在的时间,让保存时间过期,时间减少多少都可以
<?php
//删除指定键名cookie
setcookie("key","",time()-200);
//删除所有,当全部删掉的时候,文件夹也会被删掉
foreach($_COOKIES as $key=>val){
setcookies("key","",time()-1)
}
?>



项目实践

有一个购物车项目,加入两个功能

显示上次登录的时间
自动填写用户名和密码

如果用户是第一次访问该页面,则提示“您是第一次访问”
如果不是第一次访问,则显示上一次登陆时间
实现打开登陆界面,自动填写用户名。
首先在前端界面添加一个复选框


1.显示上次登录的时间

实现这个需要一个前端界面,一个后端数据处理


前端:login.php

<html>
<head></head>
<body>
<h1>xxxx管理系统</h1>
<form action="loginProcess.php" method="post">
<table>
<tr>
<td>用户id</td>
<td><input type="text" name="id"/></td>
</tr>
<tr>
<td>密码</td>
<td><input type="passwd" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="用户登陆"/></td>
<td><input type="reset" value="重新填写"/></td>
</tr>
</table>
</form>
</body>
</html>





后端:loginProcess.php

这段代码的作用就是检验cookie是否为空,为空则说明是第一次登陆,不为空则说明不是第一次登陆,就把上次登陆的时间打印出来。然后这一段代码可以封装成为一个函数,用的时候再require一次。
<?php
echo "welcome".$_GET['name']."login success!!";
echo "<br/><a href='login.php'>返回重新登陆</a>";
if(!empty($_COOKIE['lastVist'])){
echo "你上次登录时间是".$_COOKIE['lastVist'];
//更新时间
setcookie("lastVist",date("Y-m-d H:i:s"),time()+24*3600*30);
}else{
//用户第一次登陆
echo "你是第一次登陆";
setcookie("lastVist",date("Y-m-d H:i:s"),time()+24*3600*30);
}
?>


作业


完成自动填写用户名和密码

思路和参考代码如下:
分为两个部分

判断是否该填写(看用户有没有选中保存,用户有没有登陆过)
自动填写(定义一个填写的函数)

在login.php加入复选框,加入自动填写函数
<?php
function getCookieVal($key){
if(empty($_COOKIE['$key'])){
return "";
}esle{
return $_COOKIE['$key'];
}
}
?>

<html>
<head></head>
<body>
<h1>xxxx管理系统</h1>
<form action="loginProcess.php" method="post">
<table>
<tr>
<td>用户id</td>
<td>
<input type="text" name="id" value="<?php echo getCookieVal("id"); ?>"/>
</td>
</tr>
<tr>
<td>密码</td>
<td><input type="passwd" name="password"></td>
</tr>
<tr>
<td colspan="2">是否保存用户id
<input type="checkbox" value="yes" name="keep">
</td>
<tr>
<tr>
<td><input type="submit" value="用户登陆"/></td>
<td><input type="reset" value="重新填写"/></td>
</tr>
</table>
</form>
</body>
</html>

然后在loginProcess.php里面直接填写
//接受用户数据
//1.获取id
$id=$_POST['id'];
//2.获取密码
$password=$_POST['password'];
//3.获取用户是否选中了保存id
if(empty($_POST['keep'])){
echo "用户不保存";
//判断是否存在保存id的cookie,若存在则清理
if(!empty($_COOKIE["id"])){
setcookie("id",$id,time()-100);
}
}else{
echo "用户保存";
setcookie("id",$id,time()+7*2*2*3600);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: