引:http://hi.baidu.com/comdeng/blog/item/75962afa230d9a14a9d31150.html
手机端登录网站的问题是一个困扰我很久的问题。总是会有那么一些用户告诉我,他的手机不能登录网站了。要想能有效地解决手机登录的问题,一种方案就是尽可 能多地模拟出用户的手机端环境出来,针对这些具体的环境对代码进行测试和调整。另一种方案就是尽可能地让网站拜托对于客户端环境的依赖,创建更加健壮的代码。
随着信息技术的发展,手机本身的硬件设备越来越先进,功能也越来越全面,对于cookie的支持显然不成问题。不过,总还是有一部分人群在使用着比较低端 的手机。做为开发者来说,要能最大范围地满足不同手机用户的需求,就不得不考虑对于不支持cookie的手机的支持。否则,你可能不得不一遍又一遍地对用 户说,我们的网站支持带有cookie功能的手机,甚至还得对着用户解释半天什么是cookie。
那么,现在就来看看我们需要为创建不依赖于cookie的手机端用户登录机制需要做哪些准备。
一、了解php对于session机制的支持
php.ini中关于session的几个有用的字段:
session.use_trans_sid 通过开启这个参数,即可启用通过url参数传递sessionId的支持。默认值为0,不开启。
url_rewriter.tags 哪些地方需要用来传递sessionId。默认值为”a=href,area=href,frame=src,input=src,form=fakeentry”,表示在标签a=href表示对于标签a的href属性,要将sessionId附加上去。
session.use_cookies 默认的值是“1”,代表sessionId使用Cookie来传递,反之就是使用url参数来传递。如果session.use_trans_sid=1,那么启用该选项,在客户端支持cookie的情况下,仍然使用cookie传递sessionId,在检测到客户端不支持cookie的情况下,则会使用url参数传递sessionId。
session.name 这个就是SessionID储存的变量名称,默认为PHPSESSID
session.cookie_lifetime 这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭sessionId就作废。
session.gc_maxlifetime 这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除。
session.save_path session的保存路径。默认为/tmp。如果在路径前加2;则表示cookie的存储深度为2。比如如果session.sava_path=2;/tmp/session,那么sess_005c685e3ec4e0cf6b667245225299c8这个session就会保存在/tmp/session/0/0/这个目录下。