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

news/2024/11/29 8:54:42/

cookie的动态使用

  • 一、cookie的基本用法
    • 1.设置 Cookie:
    • 2.获取 Cookie:
    • 3.删除 Cookie:
  • 二、实战开发应用
    • 1.设置cookie封装函数
    • 2.商品页,读取商品ID,并设置cookie
    • 3.获取最近浏览商品

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

@漏刻有时


http://www.ppmy.cn/news/856732.html

相关文章

HTTPS网站提示“此网站无法提供安全连接”

所有文章优先发布在个人博客上&#xff0c;后续更新可能会忘记同步到CSDN上&#xff0c;给你带来不便抱歉。 个人博客此篇文章地址: https://www.xdx97.com/article/654797281383415808 遇到这个问题的情况很多&#xff0c;这里提供一下我遇到的问题。 我们在下载ssl证书的时候…

访问网站出现需要进行身份验证您与此网站的连接不是私密连接

症状如上图 解决方案&#xff1a; iis打开身份验证 禁用以上内容即可

解决 “此网站的安全证书有问题 继续浏览此网站 无反应” 的问题

用 IE 9 / IE10 访问内部系统网站&#xff0c;一些需要证书的网站可能会出现&#xff1a; 解决的办法是&#xff08;三种方法任选其一&#xff09;&#xff1a; 1、重新生成服务器网站的证书&#xff0c;长度由 512 位改为 1024 位。 2、卸载掉&#xff1a;微软非安全补丁KB…

解决安装SSL后,通过https访问出现“您与此网站建立的链接并非完全安全”提示的问题

之前安装SSL并配置https访问之后&#xff0c;通过谷歌等浏览器访问出现这个提示&#xff1a; 原因是我们的页面存在一些不安全的http请求&#xff0c;比如图片、js等静态文件。 我们只需要将其升级为https请求即可。 页面的head中加入&#xff1a; <meta http-equiv"…

访问链接提示“此网站无法提供安全连接”

我在腾讯云上安装并配置完jdk和tomcat&#xff0c;在控制台把该开放的端口也开放了出来&#xff0c;但是启动tomcat之后却总是访问不了tomcat首页&#xff0c;提示如下&#xff1a; 此网站无法提供安全连接118.89.34.111 发送的响应无效。 ERR_SSL_PROTOCOL_ERROR于是我参考了…

https--此网站无法提供安全连接

https–此网站无法提供安全连接 如果出现下图现象&#xff1a; 并且安装了ESET NOD32系列安全软件&#xff0c;则可能解决方案为&#xff1a; 新的改变 如此问题便解决了&#xff1a;

浏览器显示“您与此网站之间建立的连接不安全”的解决方案

现在很多网站打开的时候发现浏览器地址栏多了一个小的信息提示&#xff0c;点开看&#xff0c;谷歌的Chrome浏览器会提示“您与此网站之间建立的连接不安全”&#xff0c;火狐的firefox浏览器会提示“您与此网站之间建立的连接不安全”。 这种一般是什么原因导致的呢&#xff1…

网站安全检测被 提示该网站内容被禁止访问

很多建站公司都在使用Kindeditor开源的图片上传系统&#xff0c;该上传系统是可视化的&#xff0c;采用的开发语言支持asp、aspx、php、jsp,几乎支持了所有的网站可以使用他们的上传系统&#xff0c;对浏览器的兼容以及手机端也是比较不错的&#xff0c;用户使用以及编辑上传方…