PHP 会话技术

本文介绍了PHP中的会话技术,包括会话的作用、为何使用会话,以及用户跟踪的三种方式。详细讨论了Cookie和Session的工作原理、使用方法及区别,强调了它们在用户身份识别和状态保持中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是会话?

会话是跟踪web程序中常用的技术,用来跟踪用户的整个会话。
会话的作用:记住用户身份。

二、为什么要使用会话技术

我们在浏览网站的时候,访问每一个Web页面都是使用HTTP协议来实现的。由于HTTP协议是一个无状态的协议。这就会导致当一个用户请求一个页面以后,再请求该网站的其他页面,HTTP协议并不能告诉服务器这是同一个用户。因为HTTP协议是无状态的,所以我们无法跟踪用户。所以一定程度上会影响开发,例如:登录模块,如果不能跟踪用户,将会导致访问该网站的每一个都要求我们重新登录。

三、用户跟踪的方式

所谓用户跟踪,其实就是向另一个网页传递数据。

PHP里面提供了3种方法来实现网页之间传递数据:
①可通过超链接或者 header() 函数在URL后面附加参数的形式来传递数据。
② 使用cookie将用户的状态信息存储在客户端的计算机里面。
③ 使用session将用户的状态信息存储在服务器端的计算机里面。

如果用户的状态信息全部都是通过附加在URL后面来进行传递,那么,开发工作量是非常大。所以一般选用Cookie或者Session技术。

四、Cookie

  1. cookie 的作用
    cookie 常用于识别用户。

  2. cookie的概述:
    cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,能够创建并取回 cookie 的值。

  3. cookie的使用:
    创建Cookie : 在PHP里面,提供了一个叫做setCookie的函数,可以用客户端发送cookie信息
    Bool SetCookie(名称,值,生存时间,有效的目录,有效的域名,是否通过安全协议HTTPS来传输Cookie) Cookie的生存时间是以当前的时间戳来计算的 如果Cookie设置成功,则返回true

    (注意:浏览器之间的cookie不是共用的。)

    读取Cookie
    在PHP里面提供了一个$_COOKIE[ ]这是一个超全局数组。该超全局数据用来存放从客户端发送过来的cookie信息。

    删除cookie
    删除cookie,只需调用setCookie函数,只需要value值为空,然后时间小于当前的系统时间即可

五、Session

  1. session的作用:
    PHP session 变量用于存储关于用户会话(session)的信息,或者更改用户会话(session)的设置。Session 变量存储单一用户的信息,并且对于应用程序中的所有页面都是可用的。
  2. Session 的概述
    您在计算机上操作某个应用程序时,您打开它,做些更改,然后关闭它。这很像一次对话(Session)。计算机知道您是谁。它清楚您在何时打开和关闭应用程序。然而,在因特网上问题出现了:由于 HTTP 地址无法保持状态,Web 服务器并不知道您是谁以及您做了什么。
    session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。
  3. Session 的工作机制
    为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导。
  4. session的使用
    ①启动会话 session_start()
    session_start() 函数必须位于 html 标签之前
    ②存入会话 $_SESSION[‘key’] = $value;
    (存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量)
    ③读取会话 $value = S E S S I O N [ ′ k e y ′ ] ④ 删 除 会 话 u n s e t ( _SESSION['key'] ④删除会话 unset( SESSION[key]unset(_SESSION[‘key’])
    调用 session_destroy() 函数彻底销毁 session
    ⑤结束当前会话 session_destroy()

六、cookie和session的区别

  1. cookie的数据存在客户端,session的数据存在服务器端
  2. cookie不是很安全,别人可分析存放在本地的cookie并进行cookie欺骗,so,为了安全,建议使用session
  3. session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器的性能,为了减轻服务器性能的问题,应使用cookie
  4. 单个cookie保存的数据不超过4k,大部分浏览;其他信息若需保留,可存放为cookie
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值