问题产生的原因: 由于ajax的php技术页面与普通php页面生成的session id,在firefox等浏览器下客户端进程不同,导致session id不同。因此,ajax的php技术页面所赋值的session变量的值,在普通php页面是读不到的。
如:ajax的php技术页面的user agent为Shockwave Flash,而普通php页面的user agent为Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.1.10) Gecko/20100504 Firefox/3.5.10。
因此,它们会被PHP服务器作为不同的客户端来赋予不同的session id值。
解决:
主要的方法是统一ajax的php技术页面和普通php页面生成的session id的值。
1,使用IP+user agent来作为固定的sesssion id。
2,使用用户名等标识性信息作为固定的sesssion id。