退出时,会设置 SESSION['isLogon']=false 或者 删除掉这个key.
而针对用户直接关闭时.这点,就需要你对SESSION原理有一个比较深入的了解.
你后面两个问题.都是属于对于SESSION原理不够了解造成的.
我简单讲讲吧.详细的可以参阅一下脚本语言对于SESSION的管理部分章节.
HTTP的SESSION 一般都是通过一个 SESSIONID 来得到并处理的.
每一次HTTP请求,浏览器会把COOKIE附带给请求数据包.而SESSIONID(一般来说,允许COOKIE时) 都会附带在COOKIE里.
如:
Cookie: PHPSESSID=000010010100010; 这样的.
服务器在收到请求后... 如果面页需要处理SESSION,那么,服务器会自动去SESSION存储的地方取以 000010010100010 为key 数据.然后载入到内存里供脚本使用..
这样.脚本要得到正确的值.必须要保证两个.
A SESSIONID正确.也就是上面的 key.
B 服务器的存储数据有值.
对于你的问题:
直接关闭浏览器.时,下一次HTTP请求,是否能正常得到 SESSION['isLogon']的值呢? 也就取决于上面两点.A SESSIONID正确.B服务器端有值.
先说问题3:
15分钟(通常服务器端有个SESSION生存周期)后,服务器会自动清理存储空间里过期的值. 也就是保证中.B. 15分钟后,即使你的Key正确.而服务器也不能正确返回SESSION值. OK,15分钟后的自动退出,也就不难做到了.
再说问题1
直接关闭(而非正确退出),这个你就需要对浏览器端关于Cookie的管理有个正确的了解. 一般的COOKIE设置是与浏览器进程有关的. 也就是说.你关闭网页后,这个网页当前的COOKIE(部分),在下一次打开网页时,就消失了.
那么,当你不关闭网页时,可以拿到正确的Key (正确的COOKIE), 当你关闭网页,再打开时,COOKIE没有了.(Key不正确了)那么,你还能得到正常的 SESSION['isLogon'] 那就是天大的BUG了.
时间关系,上面只是肤浅地讲了一下. 更深入的了解需要你对HTTP协议及HTTP数据的流程有一个详细的知识积累.
Good Luck!
PHP程序员在进行网站开发时,通常都会遇到与权限验证相关的问题。在用户登录的时候我们需要对他进行身份验证,在用户之后的操作中,我们需要对他进行权限验证,看他是否有权限操作某些模块,当然前提是用户在线。下面我们就为大家具体介绍有关PHP全站权限验证的实现方法!PHP全站权限验证代码示例:http://www.phpnewer.com/index.php/Dmaq/detail/id/173
PHP可以使用SESSION来记录值,登录的话就让他产生一个SESSION就好了