使用Cookie和用户会话
Cookie
Cookie,存储一些关于用户的较小的信息。它和一个来自服务器或脚本的请求相一致。通过一个用户的浏览器,一个主机可以请求保存20个cookie.每个coopkie包含一个名字,值和过期日期,以及主机和路径信息。一个单个的cookie的大小限制是4kb。在设置了cookie之后,只有发出请求的主机能够读取数据,这就保证了用户隐私得到尊重。另外,用户可以配置自己的浏览器通知他接受或是拒绝所有的cookie的请求。
设置了一个cookie的PHP脚本发送的标头的Set-Cookie项可能如下:
Set-Cookie:vegetable=artichoke;path=/;domain=yourdomain.com
Set-Cookie标头包含:
一个名/值对(vegetable=artichoke),
一个路径(path=/)和一个域(domain=yourdomain.com)。
如果设置了expiration字段,它会提供浏览器在哪个日期“忘记”cookie的值。如果没有设置过期日期,当用户会话过期的时候,也就是当用户关掉浏览器的时候,cookie就过期了。
path字段和domain字段协同工作,因为path是找到domain的一个目录,cookie应该送回给服务器的这个目录下面。如果路径是“/”,这是很常见的值,意味着cookie可以由文档根目录下的任何文件读取。
如果路径是“/products”,这个cookie只能够被web站点的/products目录下的文件读取。
随后,一个PHP脚本将能够访问cookie,cookie在环境变量HTTP_COOKIE中或者作为$_COOKIE超全局变量的一部分,可以用三种方式访问它们:
echo $_SERVER["HTTP_COOKIE"]; echo getenv("HTTP_COOKIE"); echo $_COOKIE["vegetable"];
设置Cookie
<?php /** *setcookie()函数输出一个Set-Cookie标头。它应该在任何其他内容发送给浏览器之前调用。 *参数:cookie名字、cookie值、过期日期、路径、域、一个整数 *如果cookie仅通过一个安全的连接发送的话,这个整数的值设为1。0表示在一个非安全的环境中发送。 */ setcookie("vegetable","artichoke",time()+3600,"/","localhost",0); if (isset($_COOKIE["vegetable"])){ echo "<p>Hello again,you hava chosen:".$_COOKIE["vegetable"].".</p>"; }else { echo "<p>Hello you.This may be your first visit.</p>"; } ?>
安全删除cookie的方法同样调用setcookie()函数,只需使用一个确定已经过期的时间,如:time()-60。
用户会话
会话函数为用户提供了一个唯一的标识符,随后可以用来存储和获取连接到该标识符的信息。当一个访客访问一个支持会话的页面,要么分配一个新的标识符,要么这个用户和之前的访问已经建立的一个标识符重新关联。任何已经和会话相关联的变量,都通过$_SESSION超全局变量变得可供你的代码使用。会话状态通常存储在一个临时文件中,尽管你可以使用一个名为session_set_save_handler()的函数实现数据库存储。
开始一个会话,返回ID,并存储变量,保存为session1.php。
<?php session_start(); echo "<p>Your session ID is ".session_id().".</p>"; $_SESSION["product1"] = "Sonic Screwdriver"; $_SESSION["product2"] = "HAL 2000"; echo "The products have been registered."; ?>
访问存储的会话变量,使用session_save_path()函数查看临时文件保存在系统的什么地方,保存为sesson2.php。
<?php session_start(); echo "Your chosen products are:"; echo "<ul>"; echo "<li>".$_SESSION["product1"]."</li>"; echo "<li>".$_SESSION["product2"]."</li>"; echo "</ul>"; echo session_save_path(); ?>
先访问服务器的sesson1.php,结果如下:
再访问服务器下的session2.php,结果如下:
在该路径下 找到sess_curdcq4agn11gq4fdj4bq2kj33,用记事本打开,就可以看到已注册的变量是如何保存的。
当一个值放置在$_SESSION超全局变量中,PHP把变量名和值写入一个文件中,这个信息可以读取并且变量可以稍后恢复。当我们把这个变量添加到超全局变量$_SESSION后,你仍然可以在脚本执行过程中的任何时刻修改其值,但是,这个修改后的值不会反映到全局设置中,直到把这个变量重新分配给超全局变量$_SESSION。
相关推荐
会话技术简单介绍,会话可以简单的理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决的一些问题?每个用户与服务器进行交互的过程中,...
cookie-session, 基于简单cookie的会话中间件 cookie会话 基于简单...用户会话可以通过 Cookies 以两种主要方式存储: 在服务器上或者在客户端上。 这个模块在cookie中存储会话数据,而像 express会话的模块在cook
本文实例讲述了php使用Cookie实现和用户会话的方法。分享给大家供大家参考。具体分析如下: PHP 包含了很多的函数,可以用来管理和记录用户信息,包括简单的 cookie 和全方位的用户会话。会话使用 PHP 语言内建的...
javaWeb技术,使用到session cookie来实现会话跟踪技术的实现
最好为快速会话维护一个 htttpOnly cookie(以验证用户并通过 XSS 抢夺 cookie 来防止重放攻击),同时在客户端可访问和修改的 cookie 中存储一些会话状态。 客户端会话在req.clientSession ,类似于 connect/...
实验结果表明, 改进的基于cookie会话保持的IPVS负载均衡集群系统能有效地解决高速代理上网环境中存在的会话失效和负载不均衡的问题, 同时在相同的并发用户量的情况下响应时间更短、吞吐率更高, 特别是在高并发情况下...
用户会话可以用cookie的两种主要方式存储:在服务器上或在客户端上。 此模块将会话数据存储在cookie内的客户端上,而类似的模块仅将cookie内的客户端存储在会话标识符上,并将会话数据存储在服务器上(通常在数据库...
Web 应用中广泛使用 Cookie 来进行会话管理,而如果 Cookie 的使用方法不当就会滋生安全隐患。与 Cookie 相关的安全隐患大致可分为以下两类。 1)Cookie 的用途不当 2)Cookie 的输出方法不当 Cookie的使用不当 Web...
WordPress用户会话同步器通过同步用户数据和cookie会话,使用户从一个wordpress登录到另一个wordpress描述通过用户会话同步器,您可以基于已验证的电子邮件同步用户数据和cookie会话,从而使用户从一个wordpress登录...
(1) session sticky(贴) 基于hash 和cookie 来实现会话保持,简单的负载均衡算法 基于source_ip(源地址hash) nginx: ip_hash 、 haproxy: source 、 lvs: sh (2) session cluster:delta session manager ...
JavaWeb03-会话跟踪cookie与session.rar JavaWeb04-内置对象与include指令.rar JavaWeb05-购物车.rar JavaWeb06-Servlet.rar JavaWeb07-javaWeb模式.rar JavaWeb08-DBUtil.rar JavaWeb09-EL与JSTL.rar JavaWeb10-...
Request对象主要是让服务器取得客户端浏览器的一些数据,包括从HTML表单用Post或者GET方法传递的参数、Cookie和用户认证。因为Request对象是Page对象的成员之一,所以在程序中不需要做任何的声明即可直接使用。 ...
Cookie和会话状态 做BS开发,这两个概念必不可少,先来个大概了解,没有实际应用很难深入,深入看参考地址! 什么是 Cookie? Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户...
Cookie与会话管理 由于 HTTP 协议的无状态性,服务器端不能保存客户端的状态。但是,在应用程序中,保持客户端的状态却是相当常见的需求。 比如,在线购物网站中的“购物车”就是一个典型的案例。购物车记住了用户在...
“你是谁?” 如何识别一个用户? 按惯例,我们使用浏览器的cookie区分不同的用户 推荐... 生成访问的唯一ID,并使用cookie记录 在cookie中记录会话的最后更新时间,超过N(如30) 分钟则认为会话结束
Cookie用于服务器实现会话,用户登录及相关功能时进行状态管理。要在用户浏览器上安装cookie,HTTP服务器向HTTP响应添加类似以下内容的HTTP报头: 复制代码 代码如下:Set-Cookie:session=8345234;expires=Sun,15-...
如何创建 cookie? setcookie() 函数用于设置 cookie。 注释:setcookie() 函数必须位于 <... 标签之前。 创建您的第一个PHP cookie 当您创建一个...如果您没有设置此过期日期,那么它将被视为一个会话cookie被删除,
在浏览某些 网站时,这些网站会把一些数据存在客户端,用于使用网站等跟踪用户,实现用户自定义功能. 是否设置过期时间: 如果不设置 过期时间,则表示这个 Cookie生命周期为 浏览器会话期间 , 只要关闭浏览器,cookie...
Web应用中的会话类似生活中的打电话,用户登录(拨号)、一系列的请求和响应(交流)、用户退出登录(挂断电话)。 我们在电话刚接通时(此手机无来电显示功能),首先会来一句,你好,我是XXX。两人互通暗号之后...