用户与服务器建立连接的同时,服务器会自动为其分配一个SessionId
储存需要的信息。服务器通过SessionId作为key,读写到对应的value,这就达到了保持会话信息的目的
今晚我们分享一下用PHP实现网站的自动登陆功能,自动登陆的本质就是长久的保存session信息,即关闭浏览
器,重新启动之后,存储在session的信息依据存在,这样就实现了自动登陆!为了让大家能够更好的理解技术的本
质,我先给大家聊聊Cookie与session。首先,Cookie是存储在浏览器本地的,它是与本机的某个浏览器密切相关
的,换一个浏览器,Cookie就会失效;而Session是保存在服务器那端的,当我们创建session之后,比如登陆成功之
后,将用户名保存在session里面,这个时候在服务器端会自动生成一个sessionID,而且这个sessionID会以Cookie
的形式,给我们浏览器返回来,因此,当我们访问该网站的其它页面的时候,我们就会带着这个sessionID的Cookie
信息过去,然后,网站就会比对我们传过去的sessionID与它服务器端存储的sessionID的值是不是一样,假如一样,
那它就会认为你是登陆成功的!
那么为什么关闭浏览器之后,重启浏览器去访问该网站页面,session登陆信息就会失效了呢?其实原理是这样
的:由于本机的sessionID是以Cookie信息存储的,而且服务器端给我们返回的带有sessionID的Cookie是没有设置有
效时间的,因此,只要关闭浏览器,Cookie就自动销毁了,那么存储的sessionID信息也就不存在了,所以服务器判
断的时候,就会认为你登陆信息失效了!那么解决办法就是:只要我们能够给那个特殊的Cookie的sessionID设置一
个失效时间,那么一切问题就迎刃而解了,下面我以一个例子,讲解一下代码,让大家彻底明白本质!!