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); }
相关文章推荐
- php 类和对象
- PHP 相关知识点
- 12346
- 经验如何提高PHP执行效率的50个技巧
- curl常用操作之get,post,cookie,file
- phpStorm配置服务器以及调试
- 子进程的个数
- PHP PDO
- php在windows2008运行的问题
- php导出excel小结
- php之验证码
- 10个超级有用、必须收藏的PHP代码样例
- php的json数据包编码和解析
- PHP的MySQLi扩展
- php 图片上传与裁剪
- lnmp部署wordpress和phpmyadmin
- PHP无限分类(树形类)
- thinkphp中无法解析__PUBLIC__ 模板常量
- PHP学习Day1
- php数组操作方法 (函数)