php ie 操作 session失效 无法读取session 谷歌火狐正常

来源:互联网 发布:淘宝扣12分怎么恢复 编辑:程序博客网 时间:2024/05/16 09:06

域名包含下划线会导致session在ie浏览器失效的问题,但是在FF和chrome是正常的


解决办法是去掉下划线即可.



我的网站在我的服务器上,
我设置了所有二级域名都指向到某个文件夹user。用做会员用。
比如http://user1.csdn.net 是访问用户user1的主页。
比如http://user2.csdn.net 是访问用户user2的主页。
很简单,
如果访问http://user1.csdn.net/login.asp 是用户登录页面 。
其实和页面http://user2.csdn.net/login.asp 是一样的,访问的都是同一个页面。
login.asp里面有个验证码,采用session保存验证码值。

文件夹路径:
/user/
/user/code.asp          验证码程序
/user/login.asp         登录页面(调用code.asp的验证码)
/user/savelogin.asp     登录处理程序 (在此页接受表单 ,并 和session("chkcode")匹配) 


好了,程序运行一切正常,真的,非常正常。
但是突然,今天,有2个用户反馈,他们无法登陆,提示验证码错误。
结果我测试分析,
发现:

http://user1.csdn.net/login.asp(可以登录) 
http://user2.csdn.net/login.asp(可以登录) 
......
http://usern.csdn.net/login.asp(可以登录) 

但是,
http://user_1.csdn.net/login.asp(不能登录) 
http://user_2.csdn.net/login.asp(不能登录) 
.....
http://user_n.csdn.net/login.asp(不能登录) 

不能登录,均提示验证码错误,经调试,发现处理页面无法获得session
结研究,发现这些无法获得session的,都是会员名带有下划线_的。比如fisher_boy

我在本地计算机,做了域名指向,举个例子,把fisher_boy.csdn.net指向到我的某个文件夹,然后进行登录操作,也是发现验证码错误。
如果把fisherboy.csdn.net指向到我的某个文件夹,进行上述操作,就正常了,能获得session


http://会员名.csdn.net/   


  这种命名方式,会员名成为了域名的一部分   
  按照DNS的标准,域名是不允许有下划线的。   


  域名的第一部分可以是国际化域名,但不可以短划线开始或结束     
  域名中不允许使用下划线字符。     
  域名中不允许使用空格。     
  域名不区分大小写-您可混合大小写。     
  域名最终的字符串编码连同'.com'或'.net'后缀不得超过67个字符。 
所以你的session为空。
0 0