欢迎访问宙启技术站
智能推送

PHP中的COOKIE和SESSION函数详解

发布时间:2023-06-24 13:27:31

在 PHP 中,Cookie 和 Session 是两个常用的数据存取方式。使用这两个方法,可以在 Web 应用程序中跨页面存储和访问数据。

Cookie

Cookie 是一种用于存储数据的小文件。当用户访问一个网站时,服务器通过 HTTP 协议发送一个 Cookie 给用户的浏览器。浏览器将 Cookie 储存在用户的本地计算机上(在浏览器 Cookie 文件夹中),并在以后的每个请求中发送到服务器。服务器可以访问 Cookie 数据,从而对用户的访问进行跟踪、收集统计信息等等。

PHP 中的 SetCookie 函数用于向客户端浏览器发送 Cookie。下面是一些常用语法:

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

参数说明:

- name:Cookie 的名称。

- value:Cookie 的值。

- expire:Cookie 的过期时间。如果不设置,Cookie 会在浏览器关闭后过期。

- path:Cookie 的路径。通过该路径下的所有页面都可以访问 Cookie。

- domain:Cookie 的域名。

- secure:如果设置为 true,表示 Cookie 只能通过 HTTPS 协议传输。

- httponly:如果设置为 true,表示 Cookie 无法被 JavaScript 访问,有助于避免跨站点脚本攻击(XSS)。

例如,下面的代码创建了一个名称为 “user_id” 的 Cookie,过期时间为一周:

setcookie("user_id", "123456", time()+7*24*60*60);

可以通过 $_COOKIE 变量来访问客户端浏览器中存储的 Cookie。例如:

echo $_COOKIE["user_id"];

Session

Session 是 PHP 中用于存储用户数据的一种机制。与 Cookie 不同,Session 数据储存在服务器上,而不是客户端浏览器上。当用户访问网站时,服务器会为该用户创建一个 的 Session ID(会话 ID),并将该 ID 存储在 Cookie 中(如果用户的浏览器启用了 Cookie 的话)。Session 数据存储在服务器上,以 的 Session ID 为索引,用户在整个访问过程中都可以使用这个 Session ID。

PHP 中的 session_start() 函数用于初始化 Session 系统。在使用 Session 前需要先开启 Session,否则无法访问。

下面是一些常用的 Session 函数:

- session_start():初始化 Session。

- session_destroy():销毁当前 Session。

- session_id():获取当前 Session ID。

- session_unset():删除 Session 中的所有变量。

例如,下面的代码演示了如何使用 Session 存储和访问数据:

// 开启 Session

session_start();

// 存储数据

$_SESSION["username"] = "user1";

$_SESSION["age"] = 20;

// 访问数据

echo "用户名:" . $_SESSION["username"];

echo "年龄:" . $_SESSION["age"]; 

总结

Cookie 和 Session 是 Web 应用程序中常用的两种数据存储方式。Cookie 可以使数据跨页面和浏览器会话存储,而 Session 通常用于在服务器上存储用户数据。两者各有优缺点,在使用时需要根据实际需求进行选择。