php开发实战分析(2):cookie的动态使用(设置、获取、删除、猜你喜欢原理、购物车调用)

简介: php开发实战分析(2):cookie的动态使用(设置、获取、删除、猜你喜欢原理、购物车调用)

一、cookie的基本用法

在 PHP 中,cookie 是一种用于在客户端(浏览器)和服务器之间存储数据的一种机制。 它们通常用于跟踪和识别用户,并存储用户的偏好设置。下面是一些常见的用法和函数来操作 cookie。

1.设置 Cookie:

可以使用 setcookie() 函数来设置 cookie。该函数有多个参数,其中最重要的是名称和值。下面是一个设置 cookie 的例子:

setcookie("username", "JohnDoe", time() + 3600, "/");


上面的代码将创建一个名为 “username” 的 cookie,值为 “JohnDoe”。time() + 3600 参数将 cookie 的过期时间设置为当前时间的一小时后。最后一个参数 “/” 是可选的,用于指定 cookie 的可访问路径。

2.获取 Cookie:

使用 $_COOKIE 超全局变量来访问 cookie。这个变量是一个关联数组,包含了当前请求中发送的所有 cookie。

下面是一个使用 $_COOKIE 访问 cookie 的例子:

if (isset($_COOKIE["username"])) {
    $username = $_COOKIE["username"];
    echo "Welcome back, " . $username;
} else {
    echo "Welcome, guest!";
}


上面的代码首先检查是否存在名为 “username” 的 cookie,如果存在则将其值存储在 $username 变量中,然后输出欢迎消息。如果不存在,则输出默认的欢迎消息。

3.删除 Cookie:

要删除 cookie,可以通过将 cookie 的过期时间设置为一个早于当前时间的时间戳来实现。例如:

setcookie("username", "", time() - 3600, "/");

上面的代码将 “username” cookie 的过期时间设置为一个小时前,这将导致浏览器立即删除该 cookie。请注意,删除 cookie 需要确保在发送任何输出之前执行。


这是一些基本的 cookie 用法。还有其他一些参数和选项可以用来设置和操作 cookie,你可以查阅 PHP 官方文档来获取更详细的信息。

二、实战开发应用

在购物网站,最常见的做法:猜你喜欢,即在未正常登录的时候,浏览很多商品时,系统会自动记录你的浏览历史,并在猜你喜欢等展示位置显示你最近的足迹。这个就是使用到cookie的一个用发。那么,如何使用呢?

1690265669639.png


1.设置cookie封装函数

COOKIE的基本设置方式,便于快速调用和修改,封装为函数,统一调用。

//设置cookie
function set_cookie($name, $value = '', $expire = 0, $path = "/", $domain = null)
{
    $cookiedomain = ''; //COOKIE作用域
    $domain = $domain == null ? $cookiedomain: $domain;
    setcookie($name, $value, $expire, $path, $domain);
}


2.商品页,读取商品ID,并设置cookie

//记录最近浏览
$p = $_GET['id'];
$history_tmp = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
$history         = array_filter(explode(',', $history_tmp));
if (in_array($p, $history) == false) {
  if (count($history) == 30)
  {
    unset($history[0]);
  }
  array_push($history, $p);
  $history_tmp = implode(',', $history);
  set_cookie('his', $history_tmp, time() + 15552000);
}


3.获取最近浏览商品

function get_history($num)
{
    $history = isset($_COOKIE['history']) ? $_COOKIE['history'] : '';
    $his = array_filter(explode(',', $history));
    $count = count($his);
    $ids = array();
    $row = array();
    $num = $count > $num ? $num : $count;
    $n = $count - 1;
    for ($i = 0; $i < $num; $i++) {
        $id = intval(ucode($his[$n - $i]));
        if ($id > 0) {
            $ids[] = $id;
        }
    }
    if (count($ids) > 0) {
        $row = "";//读取数据表
    }
    return $row;
}



@漏刻有时

相关文章
|
3月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
13天前
|
存储 安全
Cookie会话跟踪的原理
会话跟踪技术包括Cookie和Session。Cookie是客户端技术,首次访问时服务器通过Set-Cookie响应头发送Cookie,浏览器保存并在后续请求中通过Cookie请求头回传,实现会话跟踪。但Cookie易被用户修改或禁用,安全性较低。Session则是服务器端技术,每次会话生成唯一的Session ID,通过Cookie传递给客户端,客户端在后续请求中携带此ID,服务器据此识别会话。Session更安全,但在集群环境中需解决会话共享问题。
29 1
|
3月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
3月前
|
监控 IDE PHP
php xdebug的配置、调试、跟踪、调优、分析
php xdebug的配置、调试、跟踪、调优、分析
|
3月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
4月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
40 0
|
4月前
|
存储 JavaScript 前端开发
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
Cookie 反制策略详解:Cookie加解密原理、Cookie和Session机制、Cookie hook、acw_sc__v2、jsl Cookie调试、重定向Cookie
262 1
|
4月前
|
存储
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
【Azure APIM】APIM 策略语句如何来设置多个Cookie值让浏览器保存
|
4月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
50 0
|
4月前
|
Java 应用服务中间件 nginx
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录
【Azure 环境】Azure应用程序网关设置set_Cookie=key=value; SameSite=Strict; HTTPOnly,AzureAD登录使用cookie时使用不了的案例记录