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

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

🎬 鸽芷咕个人主页

🔥 个人专栏:《速学数据结构》《C语言进阶篇》⛺️生活的理想,就是为了理想的生活!

📋 前言

  🌈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 了只能清除


目录
相关文章
|
1月前
|
安全 数据库连接 PHP
PHP编程中的关键性技术探究
在当今信息化社会,PHP作为一种流行的服务器端脚本语言,已经被广泛应用于网站开发和动态网页生成等领域。本文将深入探讨PHP编程中的关键性技术,包括数据库连接、安全性防护、性能优化等方面,旨在帮助读者更好地理解和运用PHP语言。
|
1月前
|
程序员 PHP
PHP程序员的成长之路:技术探索与实践
在当今数字化时代,PHP作为一种广泛应用的后端编程语言,对于程序员而言具有重要意义。本文从技术探索和实践的角度出发,探讨了PHP程序员在成长过程中所面临的挑战与机遇,以及如何通过持续学习与实践不断提升自身技能。
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
2月前
|
安全 PHP
从建站到拿站 -- PHP(Cookie设置)
从建站到拿站 -- PHP(Cookie设置)
20 0
|
29天前
|
程序员 PHP 数据库
PHP程序员的技术成长之路
本文将深入探讨PHP程序员在技术成长过程中所面临的挑战和应对策略,包括学习曲线的克服、项目经验的积累以及持续学习的重要性,旨在帮助PHP程序员更好地提升自身技术水平。
|
1月前
|
数据采集 存储 JavaScript
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
本文旨在介绍如何利用PHP中的simple_html_dom库结合爬虫代理IP技术来高效采集和分析汽车之家网站的电动车参数。通过实际示例和详细说明,读者将了解如何实现数据分析和爬虫技术的结合应用,从而更好地理解和应用相关技术。
PHP爬虫技术:利用simple_html_dom库分析汽车之家电动车参数
|
编解码 Java Shell
PHP 源码探秘 - 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug2
PHP 源码探秘 - 因为 Java 和 Php 在获取客户端 cookie 方式不同引发的 bug1
231 0