php操作cookie

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

  • 更新数据

    如何更新cookie信息,首先必须是是针对一个用户,setcookie会覆盖之间的记录,非常简单
    <?php
    //更新
    setcookie("name","chengdu",time()+300);
    echo "new record"
    ?>
    
    自己可以试试哦,打开浏览器,发现果然变化了。
  • 删除数据

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

项目实践

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

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

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);
}
?>

作业

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

思路和参考代码如下:

分为两个部分

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

在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); 
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值