- 浏览: 160876 次
- 性别:
- 来自: 杭州
文章分类
最新评论
cookie解决了跟踪各个访问者或用户,服务器利用cookie这种机制将少量的信息随着响应发送到客户机。这些信息由名称和值组成,都是最为文本字符串发送的。当客户机对服务器发送的另一个请求时,它将从这个服务器收到的任何cookie随着新的请求一起发送回去。
1:基本操作------ 设置和访问cookie
1> 设置:
setcookie(cookie_name,cookie_value);
这个函数对提供给它的cookie值进行转移,以便可以安全地作为HTTP响应消息的一部分发送。只要浏览器开着cookie就会一直存在,但是只要浏览器关闭cookie就会被删除。 调用这个函数的一个问题是与header一样,在调用这个函数之前不能有任何输出。因为cookie是作为响应头的一部分发送的。
2>访问:
使用$_COOKIE超级全局变量来访问
php只用随一个页面请求发送的cookie填充$_COOKIE数组,因此,如果在任何调用setcookie('cookie_name','cookie_value')执行以下代码
setcookie('cookie_name','cookie_value');echo $_COOKIE['cookie_name'];就会收到一个警告,指出cookie_name键还没有设置。同样在代码中设置新的cookie值后,$_COOKIE还没有来得及进行更新新的值,只会用随着请求接收到的cookie值来填充$_COOKIE这个值。
2:cookie如何工作
服务器通过随着响应发送一个Set_Cookie头,在客户机中设置一个cookie。(多个cookie需要设置多个cookie头。)尽管在响应中多个cookie是用不同的Set_Cookie头发送的,但是在请求中它们在一个单一的Cookie头中一起发送回服务器,各个cookie名/值对由空格分隔。
Connection Keep-Alive Content-Length 0 Content-Type text/html Date Wed, 05 Dec 2012 14:15:35 GMT Keep-Alive timeout=5, max=100 Server Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 Set-Cookie mysite=1234 X-Powered-By PHP/5.3.8
Connection Keep-Alive Content-Length 0 Content-Type text/html Date Wed, 05 Dec 2012 14:21:25 GMT Keep-Alive timeout=5, max=100 Server Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1 Set-Cookie user=jcyzone pwd=81dc9bdb52d04dc20036dbd8313ed055 X-Powered-By PHP/5.3.8
3:控制cookie的有效性
setcookie函数最多接收六个参数
bool setcookie ( string $name
[, string $value
[, int $expire
= 0 [, string $path
[, string $domain
[, bool $secure
= false [, bool $httponly
= false ]]]]]] 后四个。参数是用来控制和限制cookie的可用性。
1>expire参数可以控制cookie的有效期,eg:setcookie('one_hour','still good',time()+3600);在cookie过期之后,Web浏览器就不再将它随着请求一起发送回服务器。将这个参数设置为0,就表示这个应该被认为是一个会话cookie(session cookie)。它存储在内存中,而不是硬盘上,而且只有在用户正在进行浏览时它才是有效的。在用户关闭Web浏览器之后,cookie值就消失了。( 注意:现在大多数浏览器是多线程的,每一个新的浏览器窗口都是同一个主浏览器进程中的一个新的线程。这可以使Web浏览器快一点并且共享许多资源,比如内存。因此,即使关闭了一个会话cookie及相关联窗口,但是同一个浏览器进程的其他窗口很可能仍然在内存中保存这这个cookie,因此关闭所有浏览器窗口才能确保cookie确实消失了。)
2>path参数可以限制这cookie对那些页面是有效的。例如将路径设置为'/',那么这个cookie对于站点所有页面都是有效的;但是如果将它设置为'/admin',那么只对站点上URL以/admin开头的页面有效。如果没有指定,那么默认是这个cookie时所在的目录。
3>domain参数可以限制或扩展这个cookie对那些机器有效。在默认的情况下,它对发送它的服务器有效。但是如果许多服务器共同承担Web应用程序负载,这些机器的名称都是www.example.com的形式,那么可以将参数设置为‘.example.com’这意味着对这个域中的任何机器有效。
4>最后secure参数设置为1,那么表示cookie只在HTTPS连接上有效。默认值0表示在安全连接和不安全连接都有效,但是,这个参数不会改变cookie在用户计算机上作为明文存储的事实。
4:删除cookie
有时候,可能不再想要一个cookie,希望删除它。一个办法就是让他在客户机上过期,
setcookie('cookie_name','cookie_value',time()-3600);这样客户机意识到已经过期,让程序把它清理掉。
5:cookie数组
PHP有一种方便的机制,可以通过它将数组和cookie联系起来
example:
setcookie('UserInfo[name]',$_POST['name']);
setcookie('UserInfo[address]',$_POST['address']);
setcookie('UserInfo[birth_date]',$_POST['birth_date']);
在下一次访问cookie就可以访问如下
$name = $_COOKIE['UserInfo']['name'];
$address = $_COOKIE['UserInfo'][address];
$birth_date = $_COOKIE['UserInfo']['birth_date'];
6:cookie应用
知道把什么放在里面,尽管cookie是一种可以将信息与特定客户机关联在一起非常方便,但是它有许多缺点,它以不安全的明文格式在因特网上传输在客户机上存储,cookie包含的数据量有限制(常常只有4KB)。
一般规则是不要将太多的数据放在cookie中,而是将它作为标致来帮助我们管理用户。如果希望在用户界上存储确保它是无害的,不构成安全威胁。
1>个性化方式欢迎重返站点要求他登陆2>用户的个人设置
发表评论
-
实时编辑表格
2014-06-03 10:08 751实时编辑表格 -
手把手教你在Ubuntu上安装Apache、MySql和PHP
2013-07-11 15:25 01:首先安装apache:打开终端(ctrl+Alt+t), ... -
正则取a
2013-04-17 16:29 0<a[^>]*href=["'](?[^ ... -
操作字符串
2013-04-09 15:42 735strpos() - Find the position ... -
php oracle CLOB
2013-03-05 10:49 21541.php insert oracle 的CLOB字段 ... -
ckeditor配置
2013-04-09 15:42 1175// 界面语言,默认为 'en'config.langua ... -
格式化文件大小
2013-04-09 15:41 826function formatBytes($bytes) ... -
PHP显示Deprecated: Assigning the return value of new by reference is deprecated in
2013-04-09 15:41 898昨晚用Spreadsheet_Excel_Rea ... -
PHP的位运算
2013-01-09 10:34 837$a & $b and(按位与) $a | $b o ... -
cookie和会话(三)
2012-12-10 22:30 8831:如何传输会话ID 会 ... -
cookie和会话(二)
2012-12-07 23:34 1708会话 除了能够在客户机和服务器之间发送少量信息外,还 ... -
(转)匹配中文
2012-11-27 17:13 1000在javascript中,要判断 ... -
php+jquery+ajax+json简单小例子
2012-11-22 23:52 75037直接贴代码: <html> <titl ... -
PECR
2012-11-20 22:13 985经常使用的分隔符是正斜线(/), hash符号(#) 以 ... -
几个经典函数
2012-11-20 00:19 9331:是否为邮件 function is_email($em ... -
html2fpdf HTML转换为PDF
2012-11-14 12:33 6482下载html2fpdf包: downurl:http://s ... -
检查浏览器版本类
2012-11-09 13:11 770class BrowserDetector { var $U ... -
匹配链接
2012-10-30 11:43 807有一段类似下面的代码,匹配所有的链接地址: $code = ... -
PHP获取类名及所有函数名
2012-08-24 11:48 11763PHP获取类名及所有函数名1.获取行号、文件路径文件名、类名、 ... -
获取<meta>中的content标签内容
2012-02-24 09:04 2028php函数:$tags = get_meta_tags ( ' ...
相关推荐
cookie-session, 基于简单cookie的会话中间件 cookie会话 基于简单cookie的会话中间件。用户会话可以通过 Cookies 以两种主要方式存储: 在服务器上或者在客户端上。 这个模块在cookie中存储会话数据,而像 express...
这是两个视频,主要讲述了cookie的设置,访问,删除的一些操作;会话的设置,删除的一些操作,及cookie和会话的一些区别及联系。对一些学生对cookie和会话的理解有帮助。
PHP 会话控制 cookie 基础教程
介绍cookie种类以及在整个会话中工作原理和过程,内容介绍比较通俗易懂,主要针对在了解网页访问中,一些解析和破解等问题、
针对基于源IP会话保持的IPVS在高速代理上网环境中存在的会话失效和负载不均衡问题, 研究了LVS系统的设计原理与实现方法, 并结合Web应用中cookie会话保持机制, 提出了基于cookie会话保持的改进方案。实验结果表明, ...
使用Cookie进行会话管理.docx
会话技术简单介绍,会话可以简单的理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。会话过程中要解决的一些问题?每个用户与服务器进行交互的过程中,...
express-socket.io-session, socket.io 共享基于cookie的会话中间件 express-socket.io-sessionsocket.io 共享基于cookie的会话中间件。 使用英镑表示的> 4.0.0 和英镑> 1.0.0,不支持向后兼容。帮助我注意错误或者...
cookie、session会话技术
介绍一个php类用于处理cookie会话,需要的朋友们可以下载参考。
当设置为true时,表示创建的 Cookie 会被以安全的形式向服务器传输,也就是只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以不会被窃取到Cookie 的具体内容。...
NULL 博文链接:https://hello-nick-xu.iteye.com/blog/2103300
cookie会话技术
最好为快速会话维护一个 htttpOnly cookie(以验证用户并通过 XSS 抢夺 cookie 来防止重放攻击),同时在客户端可访问和修改的 cookie 中存储一些会话状态。 客户端会话在req.clientSession ,类似于 connect/...
Cookie的作用可大了,但无论怎么夸大Cookie的作用都离不开“跟踪客户端状态”这句话。我们知道Cookie是服务器保存在客户端的信息,然后客户端会在下次请求时把Cookie在还给服务器,这样服务器就可以通过信息来识别...
购物车的四种做法(hidden、url重写、cookie、会话)
一、cookie机制和session机制的区别 ...... 二、会话cookie和持久cookie的区别 ......
第五章 cookie与session会话技术思维导图.png
pycookiecheat:从浏览器的已验证会话中获取Cookie,以便在Python脚本中使用
会话跟踪技术cookie,session