Chinaunix首页 | 论坛 | 博客
  • 博客访问: 18702066
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类:

2008-05-29 22:06:58

新开窗口有SESSION的情况
  如果窗口A 是已经登陆了的,有SESSION,那么在A 中点击任何一个连接新打开的窗口都是有SESSION
  
  从窗口A中,采用window.open()等js方法打开的窗口也都拥有SESSION.

  从窗口A中,点击 文件(F)->新建窗口,这样新建的窗口也有SESSION.

  MyIE中的创建窗口都类似 IE中的在同一窗口点击文件->新建窗口,所以只要输入正确的地址都能取到SESSION


新开窗口取不到SESSION

  IE,自己手动开启一个新窗口(点击图标,新开一个窗口).这种情况下,即使输入正确的和窗口A一样的地址也取不到SESSION.
  
  在IE中,打开WebFolder,或者MsOffice等支持HTTP1.1扩展协议的在线编辑的软件,也是取不到SESSION



总结一下:

  SESSIOn取不到的主要原因是因为http是无状态的通信协议,所以在不同的进程之间无法共享SESSIOn,因为虽然你双击打开的新窗口且输入了同一地址,但是http协议的无状态特性,客户端和服务器都不会主动的去记录他们之间的连接状态.SESSION和COOKIE正是为了明确客户端和服务器之间通信的记录,或者说表明他们之间的关系的这么一种机制..

  你可以把SESSION / COOKIE的这种机制想象成为 京客隆超市 的会员卡. 你有这张会员卡,售货员就能知道你是什么级别的会员,商品应该按照什么样的会员价格卖给你.

  SESSION的处理方式比较多. 楼主的情况是PHP默认的处理机制.采用在服务器段保存以SESSION_ID的方式保存SESSION. 
  
  可以这么理解,超市只给了你一个ID卡,你的所有信息都是存放在超市的电脑里,而不是一张IC卡,信息存在卡片里.因为超市的分店之间没有联网,所以你的ID卡,就不能在其他分店里用了.

  但是如果你用COOKIE呢,就相当于,超市给的是一张IC卡,信息都存放在卡里,这样,即使超市没有联网,但是所有超市分店的电脑都能识别这样的IC卡,所以能在任何分店内使用他购物消费.但是也带来不安全,这个我就不举例子了.HOHO,现在造假太严重了
阅读(543) | 评论(0) | 转发(0) |
0

上一篇:理解PHP中的MVC

下一篇:smarty实例教程一

给主人留下些什么吧!~~