您的位置:首页 > 编程语言 > PHP开发

PHP:Cookie与Session的使用与区别

2014-08-11 22:54 856 查看
[align=center] [/align]
[align=center]http://bbs.aseoe.com/thread-646-1-1.html[/align]
[align=center] [/align]
[align=center]Cookie与Session[/align]
[align=left]Cookie和session是目前使用的两种存储机制。[/align]
[align=left]cookie是从一个WEB页到下一个WEB页面的数据传送方法,cookie存储在客户端。[/align]
[align=left]Session是让数据在页面中持续有效的一个传递方法,session存储在服务器端。[/align]
[align=left]掌握了cookie与session这两个技术,在WEB网站页面间信息传递的安全性是非常必要的,也是必不可少的。[/align]
[align=left]一、 Cookie管理[/align]
[align=left]1、 Cookie[/align]
[align=left]Cookie是一种在远程浏览器端存储数据并以此跟踪和识别用户的机制。简单的说,cookie是WEB服务器暂时存储在用户硬盘上的一个文本文件,并随后被WEB浏览器读取。当用户在次访问WEB网站时,网站通过读取cookie文件记录这位访客的特定信息(如上次访问的位置、花费的时间、用户名和密码等)从而迅速做出响应,如在页面中不需要输入用户名和密码等,就可以直接登录网站等。文本文件的命令格式如下:[/align]
[align=left]用户名@网站地址[数字].txt[/align]
[align=left]打开”我的电脑”—C盘(系统盘)---documentsand settings—administrator—cookie[/align]
[align=left]这个路径就是cookie文件存储的路径。Administrator是当前使用的用户名,也就是登录本机的用户名,administrator@sogou[1].txt是指定格式自动生成的cookie文件,index.dat是用来保储所有打开的WEB网站的信息,该文件会随着用户打开的网站随时进行更新,在cookie文件夹下的每一个cookie文件都是一个简单而又普通的文本文件,而不是程序。Cookie中的内容大多是经过了加密处理的,因此表面看起来只是一些字母和数字的组合,这些内容只有服务器才知道他们真正的含义。[/align]
[align=left]Cookie常用于以下3个方面:[/align]
[align=left] 记录访客的某些信息。如可以利用cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息,另外,某些网站可以应用cookie自动记录访客上次登录的用户名。[/align]
[align=left] 在页面之间传递变量。浏览器并不会保存当前页面上任何变量信息的,当页面被关闭,页面上的任何变量信息将随之消失。如果用户声明一个变量id=8,要把这个变量传递到另一个页面,可以把变量id以cookie形式保存下来,然后在下一页通过读取该cookie来获取变量的值。[/align]
[align=left] 将所查看的internet页礁在cookie临时文件夹中,这样可以提高以后浏览的速度。[/align]
[align=left]2、 创建Cookie[/align]
[align=left]在PHP中通过setcookie函数创建Cookie。在创建之前必须了解的是,cookie是HTTP头标的组成部分,而头标必须在页面其他内容之前发送,它必须最先输出,即使在setcookie()函数前输出一个HTML标记或echo语句,甚至一个空行都会导致程序出错。语法如下:[/align]
[align=left]Bool setcookie(string name[,string value[,int expire [,stringpath [,string domain [,int secure]]]]])[/align]
[align=left]该函数的参数说明如表:[/align]
[align=left] Name cookie的变量名 可以通过$_cookie[“cookiename”]调用变量名cookiename的cookie[/align]
[align=left] Value cookie的变理名 该值保存在客户端不能用来保存敏感数据。可以通过$_cookie[“value”]获取名为values的值[/align]
[align=left] Expire cookie的失效时间,expire是标准的UNIX时间标记,可以用time()函数或mktime()函数获取,单位为秒。[/align]
[align=left] Path cookie在服务器端的有效路径 如果该参数设置为“/”,则它就在整个domain下的/11目录及子目录内有效。默认是当前目录。[/align]
[align=left] Domain cookie有效的域名 如果要使cookie在mrbccd.com域名下的所有子域都有效,应该设置为mrbccd.com[/align]
[align=left] Secure 指明cookie是否通过仅通过安全的https,值为0或1,如果值为1,则cookie只能在HTTPS连接上有效,如果值为默认值0,则cookie在HTTP和HTTPS连接上均有效。[/align]

 session与cookie的区别:

  1: session的内容存在文件里的话,文件在哪儿?

  答: 由 session.save_path = "D:/tmp",

  如果不指定, 默认放在 C:/windows/temp, Linux下默认在 "/tmp"目录

  2: cookie和session的关系

  答:cookie可以用来存储 session_id

  tangram_guid_1357433851419  思路: 如果cookie被浏览器禁用,又怎么办?

  3: session.use_cookies = 1

  这个选项是告诉服务器: 用cookie存储session_id

  session.use_only_cookies = 0  ,是否只用cookie来传session_id

  session.use_trans_sid = 1 // 设置地址栏session_id

  4: cookie与session的关系

  答:cookie用来存储和传递session_id

  如果禁用了cookie,可不可以用session?

  答:可以, 其次,我们可以通过javascript再检测浏览器是否支持cookie,并提示用户打开cookie

  5:session的默认生命周期是多久?

  答:关闭浏览器就失效 原因:因为session_id存在于cookie,而默认情况,cookie关闭浏览器即失败.

  6: 如何设置session生命周期为30分钟呢?

  答:session.cookie_lifetime = 1800 php.ini来设置

  7:http://localhost/0415/set.php , 设置session,

  请问,该session值在哪些路径下生效??

  答: 传session_id用的cookie在哪生效,session就在哪儿生效

  7.5:传session_id的cookie又在哪儿生效呢?

  答: 默认是在'/'目录下生效

  区别: cookie默认在设置的目录下生效,而session默认在/目录下生效

  8: 如果设置传session_id的cookie的有效路径呢?

  答:session.cookie_path = /, 这儿可以设置


[align=left]
[/align]
[align=left] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: