PHP Session与Cookie详解及设置方法
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则适用于存储敏感信息,因为数据存储在服务器端。两者结合使用,可以提供更好的用户体验和安全性。
2019-04-30 上传
2011-11-17 上传
2015-12-28 上传
2020-10-27 上传
2020-10-27 上传
2021-01-21 上传
2016-04-23 上传
2020-10-22 上传
2020-10-16 上传
weixin_38567813
- 粉丝: 4
- 资源: 913
最新资源
- Python中快速友好的MessagePack序列化库msgspec
- 大学生社团管理系统设计与实现
- 基于Netbeans和JavaFX的宿舍管理系统开发与实践
- NodeJS打造Discord机器人:kazzcord功能全解析
- 小学教学与管理一体化:校务管理系统v***
- AppDeploy neXtGen:无需代理的Windows AD集成软件自动分发
- 基于SSM和JSP技术的网上商城系统开发
- 探索ANOIRA16的GitHub托管测试网站之路
- 语音性别识别:机器学习模型的精确度提升策略
- 利用MATLAB代码让古董486电脑焕发新生
- Erlang VM上的分布式生命游戏实现与Elixir设计
- 一键下载管理 - Go to Downloads-crx插件
- Java SSM框架开发的客户关系管理系统
- 使用SQL数据库和Django开发应用程序指南
- Spring Security实战指南:详细示例与应用
- Quarkus项目测试展示柜:Cucumber与FitNesse实践