📜  PHP状态管理系统

📅  最后修改于: 2022-05-13 01:54:11.649000             🧑  作者: Mango

PHP状态管理系统

互联网数据通信系统的基本基础是HTTP(超文本传输协议),它是一种应用层协议、分布式和协作式超媒体信息系统。正如我们所知,HTTP 是一种通用的无状态协议,可在会话和 cookie 的帮助下管理电子商务、社交媒体、博客站点以及许多商业站点等应用程序中的状态。

HTTP 是一种无状态协议,因此它也被称为无连接。服务器和客户端只有在客户端和服务器忘记彼此之后的当前请求时才知道彼此,因此浏览器无法跨网页获取不同请求之间的信息。

状态管理系统类型

1. 服务器端状态管理系统:在服务器端状态管理系统中,我们用于存储用户特定信息以识别服务器上的用户,并且信息在每个网页中都可用。示例:会话变量



2、客户端状态管理系统:在客户端状态管理系统中,用户信息由浏览器存储。示例:饼干

饼干

  • Cookie 用于客户端状态管理系统。
  • Cookies 是浏览器的数据,cookies 会随着每个 HTTP 请求作为标头信息发送到 Web 服务器。
  • Cookie 可以包含 1KB (1024B) 大小的数据。

Cookie 的用途:

  • 存储有关访问者访问网站页面的信息。
  • 访问次数和观看次数。
  • 存储首次访问信息并在每次访问时更新它,以改善用户体验。

Cookie 类型:

1. Session Cookie:这是一种在会话销毁时过期的cookie。

2. Persistent Cookie: Persistent cookie 是一种永久保存在浏览器系统中并在特定时间过期的cookie。

创建 Cookie:在PHP,我们可以通过 setcookie() 来创建和设置 cookie

句法:



setcookie( name, value, expire, path, domain, secure );

name:创建时必填,其他参数可选。

安全:如果设置为 1,则表示它可用并发送到PHP。

例子:

PHP


PHP
 
            

    if(isset($_COOKIE["username"])) {
        echo "Cookie is set";
    }
    else {
        echo "Cookie is not set";
    }



PHP


PHP


PHP



    




PHP


PHP







笔记:

  • 要在PHP检索 cookie 数据,请使用 $_COOKIES。
  • 要检查它是否已设置,请使用isset()函数。

PHP

 
            

    if(isset($_COOKIE["username"])) {
        echo "Cookie is set";
    }
    else {
        echo "Cookie is not set";
    }


对于仅更新 cookie,我们需要通过调用setcookie()函数来更改参数。我们将名称“abc”更改为“xyz”。

PHP


要删除 cookie,我们需要将到期时间设置为负数。

PHP




注意:使用 cookie 的缺点是它很容易检索,也很容易删除。它不安全。

会议:

  • Session 存储服务器端信息,以便所有网页都可以访问所有信息。
  • 它比 cookie 更安全。
  • 我们知道 HTTP 是一种无状态协议,因此当前请求无法记住以前执行的任务。

例如,当我们想在网上买东西时,我们会访问许多电子商务网站并比较产品。其中一些已添加到购物车以备将来参考。几天后,当我们准备好购买它时,由于购物车会话设置得更早,因此信息仍然可用。

会话与大小无关,可以存储用户想要的尽可能多的数据。

Session的用途:

  1. 它提供登录和注销功能来存储和显示相关信息。
  2. 它维护电子商务的购物车。

创建会话:在PHP,会话从session_start()开始 可以使用全局变量 $_SESSION 设置和获取函数和数据。

例子:

PHP




    



将信息检索到另一个页面,如下例所示:

PHP


输出:

Username abc
Userid 1

用于更新会话变量的值

$_SESSION["userid"]="1024";

要在PHP销毁会话,首先使用session_unset()取消设置所有会话变量并调用 session_destroy() 方法。

PHP