PHP Session与Cookie详解及设置方法

0 下载量 38 浏览量 更新于2024-08-31 收藏 97KB PDF 举报
"php session和cookie使用说明" 在Web开发中,PHP提供了两种主要的方式来存储用户会话信息:session和cookie。它们都是用来跟踪用户状态,但工作方式有所不同。 1. PHP的COOKIE Cookie是服务器存储在用户浏览器上的小型文本文件,用于识别用户身份和保存用户偏好等信息。在PHP中,我们可以通过`setcookie()`函数来设置cookie。这个函数有多个参数,包括: - `name`:cookie的名称。 - `value`:cookie的值。 - `expire`:cookie的过期时间,通常以Unix时间戳形式给出。 - `path`:cookie在哪个URL路径下有效,默认是当前脚本所在的路径。 - `domain`:cookie在哪个域名下有效。 - `secure`:如果设置为true(1),则cookie将在HTTPS连接上发送;默认情况下,它可以在HTTP或HTTPS上发送。 - `httponly`:如果设置为true(1),则禁止JavaScript访问cookie,以增加安全性。 例如,以下代码创建了一个名为"TestCookie",有效期为1小时的cookie: ```php <?php $value = 'somethingfromsomewhere'; setcookie("TestCookie", $value, time() + 3600); ?> ``` 除了`setcookie()`,还可以使用`header()`函数直接设置HTTP头来创建cookie,格式如下: ```php header("Set-Cookie: name=value[; path=path][; domain=domain]"); ``` 例如: ```php header("Set-Cookie: TestCookie=$value; expires=Thu, 01-Jan-2000 00:00:01 GMT; path=/~rasmus/; domain=.example.com; secure"); ``` 2. PHP的SESSION Session是服务器端存储用户会话信息的一种方式,相比于cookie更安全,因为它不直接将敏感数据暴露给客户端。PHP会自动生成一个唯一的session ID,并将其作为cookie发送给浏览器,浏览器在后续请求中携带这个ID,PHP据此找到对应的session数据。 要开始一个新的session,需先调用`session_start()`函数。然后,你可以通过`$_SESSION`全局数组来存储和读取数据: ```php <?php session_start(); $_SESSION['username'] = 'John Doe'; echo 'Hello, ' . $_SESSION['username']; ?> ``` 当不再需要session时,使用`session_destroy()`函数来清除session数据。 总结来说,cookie更适合存储不敏感的数据,如用户首选项,因为它们存储在客户端。而session则适用于存储敏感信息,因为数据存储在服务器端。两者结合使用,可以提供更好的用户体验和安全性。