PHP Cookie与Session详解及设置示例
本文主要讨论了PHP中的会话管理和Cookie的使用。首先,我们了解到Cookie是PHP用于在客户端存储数据的重要机制,它通过HTTP协议头部信息传递给浏览器,并且必须在输出其他信息到浏览器之前调用setcookie()函数,因为此函数有严格的调用顺序限制。 1.1 设置Cookie PHP提供了setcookie()和setrawcookie()两个函数来设置Cookie。setcookie()函数接受以下参数: - name: cookie的变量名,用于标识存储的数据。 - value: 要存储的cookie值。 - expire: 有效期结束的时间,可以设置为一个Unix时间戳或相对时间(如time()+3600表示1小时后过期)。 - path: 有效目录,指定cookie仅在这个路径及其子目录下生效。 - domain: 有效域名,可以设置为顶级域名或包括子域名,如".example.com"表示当前域名及其所有子域名。 - secure: 如果为1,cookie只在HTTPS连接上可用;若为0,则支持HTTP和HTTPS。 示例代码展示了如何使用setcookie()函数创建、设置有效期和指定路径与域名的简单操作。同时,通过数组形式设置多个cookie,如`setcookie('var[a]','value')`,允许通过`$_COOKIE['var']['a']`访问这些变量。 另外,文章还提到了另一种设置Cookie的方式,即使用header()函数,通过`header("Set-Cookie: name=$value[path=$path[;domain=xxx.com[;]]]")`的形式,这种方式可以在输出HTTP头时直接插入Cookie信息。 PHP的Cookie管理对于实现用户状态跟踪和个性化设置至关重要,正确地设置和使用它们能确保网站的用户体验和安全性。同时,理解Cookie的工作原理和生命周期管理对于开发高效、安全的Web应用至关重要。
<?php header("Content-Type: text/html; charset=UTF-8"); $expires = 60 * 20; //session 超时时间 function check_user_agent() //构造函数检查 User-Agent 的一致性 { if (isset($_SESSION['HTTP_USER_AGENT'])) { if ($_SESSION['HTTP_USER_AGENT'] != md5($_SERVER['HTTP_USER_AGENT'])) //user-agent 不一致 { exit('客户端信息异常'); } } else { $_SESSION['HTTP_USER_AGENT'] = md5($_SERVER['HTTP_USER_AGENT']); } } function start_session($expire = 0) { session_start(); if ($expire != 0 && isset($_SESSION['last_visit'])) { $time_last = time() - $_SESSION['last_visit']; if (isset($_SESSION['expiretime'])) //如果超时 { session_unset(); session_destroy(); exit("请重新登录"); } } $_SESSION['last_visit'] = time(); //检查 user-agent 一致性 session_regenerate_id(true); //重置 SessionID } ?>补全这段代码
- 粉丝: 386
- 资源: 6万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端面试必问:真实项目经验大揭秘
- 永磁同步电机二阶自抗扰神经网络控制技术与实践
- 基于HAL库的LoRa通讯与SHT30温湿度测量项目
- avaWeb-mast推荐系统开发实战指南
- 慧鱼SolidWorks零件模型库:设计与创新的强大工具
- MATLAB实现稀疏傅里叶变换(SFFT)代码及测试
- ChatGPT联网模式亮相,体验智能压缩技术.zip
- 掌握进程保护的HOOK API技术
- 基于.Net的日用品网站开发:设计、实现与分析
- MyBatis-Spring 1.3.2版本下载指南
- 开源全能媒体播放器:小戴媒体播放器2 5.1-3
- 华为eNSP参考文档:DHCP与VRP操作指南
- SpringMyBatis实现疫苗接种预约系统
- VHDL实现倒车雷达系统源码免费提供
- 掌握软件测评师考试要点:历年真题解析
- 轻松下载微信视频号内容的新工具介绍