PHP中,每次开始会话将会调用session_start()函数,将会检查是否存在会话ID,如果不存在则创建一个(在初次访问,或者长时间不访问后,再次访问);如果存在,则载入对应的会话变量。
第二步,注册会话变量,根据会话ID,注册会话变量。比如用户使用ID:1(实际上是随机编码,没这么简单的)访问服务器,并且通过了登陆界面,服务器分配给此ID一个会话变量user1。
第三步,访问其他网页,每个网页的开头都要检查用户ID及会话变量,保证是同一个用户。
第四步,清除会话变量,再清除会话ID。
问:为什么使用会话ID又使用会话变量?
答:使用会话ID是保证,是同一台客户端在访问;但是这还不够,服务器还需要知道这个客户端的使用者,所以使用会话变量,关联此ID。
有人又会问,那么在用户登录之后,我就用判断此ID来判断是不是同一个用户呀?正解,你那什么判断是同一个用户,是不是比如说用一个数组,key是用户名字,而value是ID? 哈哈,会话变量的效果是key是ID value是用户名。效果不是一样的嘛?
就是这样的!