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

域名包含下划线会导致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为空。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值