首页 > wap, web开发 > wap站也能支持session

wap站也能支持session

这两天在研究wap站用户系统和web站用户系统的融合,
要理解这篇文章,大家估计得先对cookie和seesion有一定的了解。
先贴几个链接吧:
1.session原理详解:http://gky23.blog.163.com/blog/static/
10793282007614115039817/
2.PHP会话session使用入门:http://www.okajax.com/a/200905/
php_session.html
3.谈谈session小常识:http://hi.baidu.com/%BA%DA%D7%D6%C4%D0%BA%A2/
blog/item/4bc37109cc02dda92eddd403.html
从上面的内容我们可以看出session是依赖cookie的,wap1.0不支持cookie,所以要支持wap1.0的浏览器,也没有办
法使用session了。
难道我们真的没有办法了吗?天无绝人之路,呵呵,如果大家好好读了我前面推荐的几篇文章,就会发现这么一段话:“在默认设置下,重新谈一下 Session的整个工作流程:通过session_start()启动 Session后,首先会检查发出请求页面的Cookie、URL和FORM 表单中是否存在一个名称为PHPSESSID的变量,也就是说在$ _COOKIE、$_GET和$_POST三个数组中是否有PHPSESSID这个变量。如果存在,就去相应目录中读取以sess_开头、加上这个Cookie变量值为文件名的文本文件,并从这个文本文件中取得已经设置好的数据,添加 到$_SESSION数组中去,这样,我们就可以通过$_SESSION来取得Session变量了。”
“ 这句话有什么奇怪的呢,我早就知道了。”有些读者可能会这样说。别急,既然session数组可以不从cookie中读,我们就肯定有 办法。我们可以吧PHPSESSID存在url中,在输出的每个网页中,对超链接部分做一个替换,给每个超链接加上一个PHPSESSID=XXX这么 一个变量,这样我们就可以使用session来传递一些变量啦。
在用户第一次访问wap站的时候,自己生成一个PHPSESSID值,然后把这个值附在每个超链接的后面,下次检查url中如果有 PHPSESSID参数,则不在生成PHPSESSID值。php会自动利用这个值。如果觉得PHPSESSID这个变量太长,我们可以通过修改 php.ini中的session.name或者ini_set(session.name)来设置。当然我们还需要禁用php的自动设置cookie 功能(浏览器不支持,设置了也没有用啊),修改session.use_cookie为0即可禁用php的自动设置cookie功能。 按照上面的方式我们就可以在wap系统中任意使用session值啦,这是不是很美妙啊,呵呵。

无觅相关文章插件

Popularity: 15%

分类: wap, web开发 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: