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的一个用发。那么,如何使用呢?

  • 浏览商品,记录商品的id,设置为cookie, v a l u e = ′ 1 ′ , 比如赋值给 s e t c o o k i e ( ′ h i s t o r y ′ , value='1',比如赋值给setcookie('history', value=1,比如赋值给setcookie(history,value,‘’,‘’);
  • 浏览多个商品,将多个商品的id,设置为cookie, v a l u e = ′ 1 , 2 , 3 ′ , 统一赋值 s e t c o o k i e ( ′ h i s t o r y ′ , value='1,2,3',统一赋值setcookie('history', value=1,2,3,统一赋值setcookie(history,value,‘’,‘’);
  • 设置history的长度,比如记录30个,超过30个的商品记录,予以删除,unset($history[0]);;
  • 读取设置的$_COOKIE[‘history’],将记录的字符串转为数组,遍历商品ID,读取商品信息;

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

@漏刻有时文章来源地址https://www.toymoban.com/news/detail-555651.html

到了这里,关于php开发实战分析(2):cookie的动态使用(设置、获取、删除、猜你喜欢原理、购物车调用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【LeetCode动态规划#08】完全背包问题实战与分析(零钱兑换II--求组合、组合总和IV--求排列)

    力扣题目链接(opens new window) 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount = 5, coins = [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 5=5 5=2+2+1 5=2+1+1+1 5=1+1+1+1+1 示例 2: 输入: amount = 3

    2023年04月19日
    浏览(26)
  • FineBI实战项目一(23):订单商品分类词云图分析开发

    点击新建组件,创建订单商品分类词云图组件。 选择词云,拖拽catName到颜色和文本,拖拽cat到大小。 将组件拖拽到仪表板。 结果如下:

    2024年01月16日
    浏览(36)
  • FineBI实战项目一(21):不同支付方式订单总额分析开发

    点击新建组件,创建不同支付方式订单总额组件。 选择饼图,拖拽total_money到角度,拖拽pay_type到颜色,调节内径。 修改颜色的标识文字。 将组件拖拽到仪表板。 结果如下:

    2024年02月02日
    浏览(32)
  • FineBI实战项目一(22):各省份订单个数及订单总额分析开发

    点击新建组件,创建各省份订单个数及订单总额组件。 选择自定义图表,将province拖拽到横轴,将cnt和total拖拽到纵轴。 调节纵轴的为指标并列。 修改横轴和纵轴的标题。 修改柱状图样式: 将组件拖拽到仪表板。 结果如下:

    2024年02月02日
    浏览(27)
  • FineBI实战项目一(20):不同支付方式订单笔数分析开发

    点击新建组件,创建不同支付方式订单笔数组件。 选择线图,拖拽total_cnt到纵轴,拖拽pay_type到横轴,修改连线样式为雷达图。 修改横轴和纵轴的显示文字 添加组件到仪表板。 效果如下:

    2024年01月15日
    浏览(30)
  • 设计模式之美-实战二:如何对接口鉴权这样一个功能开发做面向对象分析?

            面向对象的三个环节:面向对象分析(OOA)、面向对象设计(OOD)、面向对象编程(OOP)。只知道OOA、OOD、OOP只能说有一个宏观了解,我们更重要的还是要知道“如何做”,也就是,如何进行面向对象分析、设计与编程。         本文结合一个真实的开发案例,从基

    2024年02月09日
    浏览(32)
  • Android flutter项目 启动优化实战(一)使用benchmark分析项目

     Android flutter项目 启动优化实战(一)使用benchmark分析项目 Android flutter项目 启动优化实战(二)利用 App Startup 优化项目和使用flutterboost中的问题解决 启动时间是用户对应用的第一印象,较慢的加载会对用户的留存和互动造成负面影响 在刚上线的Android 原生flutter 的B端项目中

    2024年02月03日
    浏览(29)
  • flutter开发实战-请求dio设置Cookie

    flutter开发实战-请求dio设置Cookie 在最近开发中碰到了需要websocket长链接收到响应的auth,在之后的请求中需要将其设置为cookie中。 如Cookie:auth=DHSfQQSAXf89xZqJTLdEDVI2hwzc7p2lUmSNNdUSlgW2MyfQIN+pYr7jUbkX/; 设置cookie用到了dio_cookie_manager组件 在pubspec.yaml引入dio_cookie_manager 2.1 使用CookieJar Cookie

    2024年02月15日
    浏览(43)
  • 恶意代码分析实战--IDA pro的使用及课后练习l

    函数窗口 Functions window  位于左半部分 列举可执行文件中的所有函数,可以在众多函数中过滤出想要的函数。这个窗口也对每一个函数关联了一些标志(F L S等),这其中最有用的是L,指明是库函数。 字符串窗口 Strings window (Shift + F12) 显示所有的字符串,可以右键Setup来修

    2024年02月05日
    浏览(33)
  • 文本分析-使用jieba库进行中文分词和去除停用词(附案例实战)

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+         中文分词是将中文文本切分成一系列有意义的词语的过程。中文分词可以用于

    2024年02月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包