PHP会话技术跟踪和记录用户?使用cookie会话你必须掌握

news2024/11/17 14:43:17

在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《速学数据结构》 《C语言进阶篇》

⛺️生活的理想,就是为了理想的生活!


文章目录

  • 📋 前言
  • 会话技术的概述
  • 一. Cookie简介
  • 二. Cookie基本使用——创建Cookie
    • 2.1 创建Cookie
      • 演示实例:
    • 2.2 获取Cookie
      • look.php代码如下:
  • 三 删除Cookie的两种方式:
    • 示例:利用了客户端的cookies来实现记住密码自动登录的功能,
    • 3.1 创建login.php页面,登录并使用cookie保存用户账号和密码
    • 3.2.创建功能页面,读取用户账号和密码,实现自动登录:
    • 3.3 创建quit.php页面,删除cookie:
    • 如何在浏览器端查看Cookie?

📋 前言

  🌈hello! 各位铁铁们大家好啊,今天给大家带来的是PHP会话技术之一cookie?
  ⛳️会话技术跟踪和记录用户作为我们维护网站和记录密码的一种技术,主要有俩种cookie和Session。那么面向浏览器端的cookie你会使用吗!
  ⛺️ 欢迎铁汁们 ✔️ 点赞 👍 收藏 ⭐留言 📝!

会话技术的概述

  • 思考:两个或多个用户同时在浏览器端通过HTTP协议如何向服务器端发送请求时,如何判断请求是否是来自同一个用户?
  • 答案:HTTP协议是无状态的协议,因此其无法告诉我们这两个请求是来自同一个用户,此时我们需要使用会话技术跟踪和记录用户在该网站所进行的活动。

会话技术:是一种维护同一个浏览器与服务器之间多次请求数据状态的技术,它可以很容易地实现对用户登录的支持,记录该用户的行为,并根据授权级别和个人喜好显示相应的内容。

  • 例如,生活中从拨通电话到挂断电话之间一连串你问我答的过程就是一个会话。Web应用中的会话过程类似于打电话,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程。

PHP中Cookie和Session是目前最常用的两种会话技术。
Cookie 指的是一种在 浏览器端 存储数据并以此来跟踪和识别用户的机制;
Session 指的是将信息存放在 服务器端 的会话技术。

一. Cookie简介

在Web应用程序中,Cookie的功能:

  • 它是网站为了辨别用户身份而 存储在用户本地终端上 的数据。
  • 当用户通过浏览器访问Web服务器时,服务器会给客户发送一些信息,这些信息都保存在Cookie中。
  • 当该浏览器再次访问服务器时,会在请求头中同时将Cookie发送给服务器,这样,服务器就可以对浏览器做出正确的响应。

Cookie的应用场景:
在这里插入图片描述

Cookie在浏览器和服务器之间的传输过程:
在这里插入图片描述

尽管Cookie实现了服务器与浏览器的信息交互,但也存在一些缺点,具体如下:

  • Cookie被附加在HTTP消息中,无形中增加了数据流量。
  • Cookie在HTTP消息中是明文传输的,所以安全性不高,容易被窃取。
  • Cookie存储于浏览器,可以被篡改,服务器接收后必须先验证数据的合法性。
  • 浏览器限制Cookie的数量和大小(通常限制为50个,每个不超过4KB),对于复杂的存储需求来说是不够用的。

二. Cookie基本使用——创建Cookie

2.1 创建Cookie

bool setcookie ( 
   string $name ,		// Cookie的名(必选)
   string $value = "" ,	// Cookie的值(可选)
   int $expire = 0 ,		// Cookie的有效期(可选)
   string $path = "" ,	// Cookie在服务器端的路径(可选)
   string $domain = "" ,	// Cookie的有效域名(可选)
   bool $secure = false ,	// 指定是否通过安全的HTTPS连接来传输(可选)
   bool $httponly = false	// 指定Cookie只能通过HTTP协议访问(可选)
)

演示实例:

// ① 设置Cookie
setcookie('username', 'ada');	// 设置一个名称为username的Cookie,其值为ada
setcookie('pwd', '123456');	// 设置一个名称为pwd的Cookie,其值为123456
// ② 设置Cookie过期时间
setcookie('data', 'PHP'); 	// 未指定过期时间,在会话结束时过期
setcookie('data', 'PHP', time() + 1800);    // 30分钟后过期
setcookie('data', 'PHP', time() + 60 * 60 * 24);   // 一天后过期

说明:省略第3个参数时,Cookie仅在本次会话有效,用户关闭浏览器时会话就会结束。

2.2 获取Cookie

  在PHP中,任何从客户端发送的Cookie数据都会被自动存入到$_COOKIE超全局数组变量中。通过$_COOKIE数组可以获取Cookie数据。

示例:使用超全局数组 $_COOKIE[] 读取 Cookie 中的信息。
在这里插入图片描述

look.php代码如下:

 

反复刷新look.php网页,5秒钟后观察输出信息,有什么变化?

三 删除Cookie的两种方式:

  • Cookie 创建时未设置有效时间,则Cookie文件会在关闭浏览器时自动被删除。
  • 利用 setcookie() 函数设置过期时间。

示例:利用了客户端的cookies来实现记住密码自动登录的功能,

3.1 创建login.php页面,登录并使用cookie保存用户账号和密码

<form action="" method="post">
    用户名:<input type="text" name="uname"><br />&nbsp;&nbsp;&nbsp;码:<input type="password" name="pwd"><br />
    <input type="submit" name="btn" value="登录">
</form>
<?php
	if(isset($_POST['btn'])){
		$uname=$_POST['uname'];
		$pwd=$_POST['pwd'];		
		setcookie('uname',$uname);
		setcookie('pwd',$pwd);
		echo "登录成功,2秒后跳转到首页…………";
		header("refresh:2;url=main.php");		  
	}

3.2.创建功能页面,读取用户账号和密码,实现自动登录:

<?php    
	//登录判断
	if(!isset($_COOKIE['uname'])){
		//header写法
		echo "<script>alert('当前用户未登录!')</script>";
		header("refresh:2;url=login.php");		
		exit;
	}
	echo "您是".$_COOKIE['uname']."欢迎访问!<br />";
	echo "您的密码是:".$_COOKIE['pwd']."<br />";
?>
<a href="quit.php">退出</a>

3.3 创建quit.php页面,删除cookie:

<?php
	setcookie('uname','',time()-10);
	header("location:login.php");
?>

如何在浏览器端查看Cookie?

Chrome浏览器在老版本情况下,是可以去直接查看cookie的存放地址以及存放的密码等内容的:

  • 但是现在由于浏览器大多数安全等级比较高
  • 就查看不了 cookie 了只能清除

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1076879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zinquin ethyl ester(CAS NO. 181530-09-6),TSQ的类似物

Zinquin ethyl ester&#xff08;CAS NO. 181530-09-6&#xff09;&#xff0c;是广泛使用锌离子荧光探针TSQ的类似物&#xff0c;也是一种细胞渗透性、基于喹诺酮结构的锌离子&#xff08;Zn2&#xff09;荧光探针&#xff0c; 该探针可以用于在细胞中检测和定位锌离子。它具…

软件公司的项目管理软件选择指南

我们经常在项目推进中经常遇到各种各样的问题&#xff0c;最常见的是因团队工作效率低而无法在截止日期之前按时完成工作。但是如果能合理使用项目管理软件&#xff0c;可以有效监控项目进程&#xff0c;提高工作效率&#xff0c;从而保证按时完成任务。那么软件公司适合什么项…

Qt编程-QTableView同时冻结行和列

前言 Qt编程-QTableView同时冻结行和列。如题&#xff0c;先看效果是不是你需要的。网上找到的代码片段要么不全要么不是想要的。如果你只需要需要冻结行或冻结列&#xff0c;请看上篇博客 Qt编程-QTableView冻结行或冻结列或冻结局部单元格 &#xff0c;代码更少一些。 同时…

ansible 调研

参考&#xff1a;自动化运维工具——ansible详解&#xff08;一&#xff09; - 珂儿吖 - 博客园 (cnblogs.com) ansible是新出现的自动化运维工具&#xff0c;基于Python开发&#xff0c;集合了众多运维工具&#xff08;puppet、chef、func、fabric&#xff09;的优点&#xf…

专用/独享代理与共享代理有何区别?如何选择?

近年来&#xff0c;互联网发展快速&#xff0c;随着许多互联网业务的迸发&#xff0c;代理IP也作为一种互联网工具进入大家的业务&#xff0c;广泛地运用于跨境电商、社媒运营、SEO检测、市场研究等业务中。那么代理IP分为共享与独享&#xff0c;他们使用上有什么区别&#xff…

让你的对象变得拗口:JSON.stringify(),我把对象夹进了 JSON 魔法帽!

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 引言 1. JSON.stringify() 属性 replacer …

Gartner中国零信任网络访问市场指南发布!持安科技获评代表厂商

近日&#xff0c;全球权威市场研究与咨询机构Gartner发布《中国零信任网络访问市场指南》。其中&#xff0c;零信任办公安全企业持安科技入选为中国零信任网络访问领域“代表厂商”。 市场指南报告&#xff08;Market Guide&#xff09;是Gartner基于技术发展、落地案例等进行严…

Linux 实时补丁开启内核抢占了吗?

Linux 实时补丁开启内核抢占了吗&#xff1f; 开启了。 查看Linux实时补丁&#xff0c;发现修了如下内核宏&#xff1a; PREEMPT_RT补丁的关键点是最小化不可抢占的内核代码量&#xff0c;同时最小化为了提供这种额外的可抢占性而必须更改的代码量。特别是&#xff0c;临界区…

深度学习DAY3:激活函数

激活函数映射——引入非线性性质 h &#xff08;Σ(W * X)b&#xff09; yσ&#xff08;h&#xff09; 将h的值通过激活函数σ映射到一个特定的输出范围内的一个值&#xff0c;通常是[0, 1]或[-1, 1] 1 Sigmoid激活函数 逻辑回归LR模型的激活函数 Sigmoid函数&#xff0…

竞赛 深度学习 大数据 股票预测系统 - python lstm

文章目录 0 前言1 课题意义1.1 股票预测主流方法 2 什么是LSTM2.1 循环神经网络2.1 LSTM诞生 2 如何用LSTM做股票预测2.1 算法构建流程2.2 部分代码 3 实现效果3.1 数据3.2 预测结果项目运行展示开发环境数据获取 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

Bootstrap中让元素尽可能往父容器的左侧靠近或右侧造近(左浮动和右浮动)

在Bootstrap中&#xff0c;float-left是一个用于浮动元素的CSS类。它的作用是将一个元素向左浮动&#xff0c;使其在父容器内尽可能靠近左侧边缘&#xff0c;同时允许其他元素在其右侧排列。 使用float-left类可以创建多列布局&#xff0c;将元素水平排列在一行上&#xff0c;…

【脑机接口论文与代码】High-speed spelling with a noninvasive brain–computer interface

High-speed spelling with a noninvasive brain–computer interface 中文题目 &#xff1a;非侵入性的高速拼写脑机接口论文下载算法程序下载摘要1 项目介绍2 方法2.1SSVEPs的基波和谐波分量JFPM刺激产生算法2.3基波和谐波SSVEP分量的幅度谱和信噪比 3讨论4实验环境设置与方法…

全球邮企业邮箱服务比较:找寻最佳选择

“全球邮企业邮箱服务比较&#xff1a;Gmail、Outlook、Yahoo Mail、Zoho Mail&#xff0c;更适合中国用户的是Zoho Mail。” 在全球化的商业环境中&#xff0c;企业邮箱已经成为了一种重要的沟通工具。它不仅提供了安全、可靠的电子邮件服务&#xff0c;而且还能够集成其他企业…

hive add columns 后查询不到新字段数据的问题

分区表add columns 查询不到新增字段数据的问题&#xff1b; 5.1元数据管理 &#xff08;1&#xff09;基本架构 Hive的2个重要组件&#xff1a;hiveService2 和metastore,一个负责转成MR进行执行&#xff0c;一个负责元数据服务管理 beeline-->hiveService2/spar…

性能分析与调优(硬核分享)

前言 常看到性能测试书中说&#xff0c;性能测试不单单是性能测试工程师一个人的事儿。需要DBA 、开发人员、运维人员的配合完成。但是在不少情况下性能测试是由性能测试人员独立完成的&#xff0c;退一步就算由其它人员的协助&#xff0c;了解系统架构的的各个模块对于自身的…

MAX4/11/03/016/08/1/1/00 MAX-4/11/01/008/08/1/1/00

MAX4/11/03/016/08/1/1/00 MAX-4/11/01/008/08/1/1/00 sales force宣布推出制造业云(Manufacturing Cloud)&#xff0c;这是一款面向制造商的行业专用产品。制造云致力于将销售和运营团队聚集在统一的市场和客户需求视图周围&#xff0c;目标是更准确地预测、规划和推动可预测…

口袋参谋:如何对宝贝关键词进行词根分析?用它就对了!

​为什么宝贝转化不好&#xff1f;90%的原因是宝贝关键词没选好&#xff0c;关键词选择得不好&#xff0c;会出现点击率、展现、访客、收藏加购率等数据降低的情况&#xff0c;还会导致关键词质量得分波动大&#xff0c;甚至影响整个店铺的经营。 所以对电商卖家来说&#xff…

微信照片过期打不开怎么办?用这个办法可找回

时间太久想找之前的聊天图片 却发现图片已被清理 因为忙碌或者在外游玩一时间忘了点开 想起要找回的时候却发现已经过期 不妨试试这样几个找回小方法 PART2 图片找回 收藏和搜一搜找回 长按要找回的图片 点击收藏或搜一搜 不能保证百分百的成功率哦 存储空间找回 打开【存…

性能测试-如何进行监控设计

监控设计步骤 首先&#xff0c;你要分析系统的架构。在知道架构中使用的组件之后&#xff0c;再针对每个组件进行监控。 其次&#xff0c;监控要有层次&#xff0c;要有步骤。先全局&#xff0c;后定向定量分析。 最后&#xff0c;通过分析全局、定向、分层的监控数据做分析…

多个微信怎么实现自动回复、自动通过好友自动打招呼?

你是否有遇到这个问题&#xff1f; 1、微信号太多&#xff0c;为了能及时回复消息&#xff0c;经常带多台手机&#xff0c;重且不好携带。 2、多个微信号来回切换导致没及时通过客户好友申请&#xff0c;导致客户流失。 3、每天需要手动添加和通过好友申请来管理微信客户&am…