php判断session
‘壹’ php 判断用户是否登录
判断用户登慎轿陆主要分几个过程,第一步是用户登陆成功后把数据保存到session中,然后当用户访问需要登陆过的用户权限时就来判宽族肆断session是否为空,如果不是就登录成功。下面来看个实例判断用户登陆主要分几个过程,第一步是用户登陆成功后把数据保存到session中,然后当用户访问需要登陆过的用户权限时就来判断session是否为空,如果不是就登录成功。下面来看个实例穗世<?php教程session_start(); if(getconfig("chatroom_admin")==$_post["username"]&&getconfig("chatroom_adminpassword")==md5($_post["password"])){//登陆成功,注册session session_register("administrator"); if(isset($_session["hack_num"])){session_unregister("hack_num");}$_session["administrator"] = "yes"; header("location:main.php");exit; }else{if($_session["hack_num"]==""){session_register("hack_num"); $_session["hack_num"] = 1;}else{$_session["hack_num"] ++; } header("location:../notice.php?id=".admin_login_lost);exit;}?>看到红色的没,那里就是用户登录成功把数据保存到session['hack_num']面。<?php //这个页面首先判断用户是否正确登录,如未登录,就转到登录页面。
‘贰’ php中如何使用SESSION
1、在php中使用session,首先要启动session会话,启动session会话要使用php内置函数session_start(),如图所示。
‘叁’ php利用session怎么判断用户已离线
方法有好多种,但应该都跟心跳请求类似。
首先用户打开一个页面后,页面里面会有段js脚本来反复请求一个地址,即判断用户是否在线的地址(跟新浪微博隔一段时间请求一个地址查看是否有新消息类似)
比如判断页面为A,打开的页面为B ,则B 内的js脚本以ajax请求的方式每隔1分钟来访问A,A可以记录下最后一次的请求时间,然后你就可以拿这个最后一次请求的时间来判断用户是否离线,比如B每隔1分钟发送一次请求,如果最后活动时间与当前时间相差两分钟,就可以认为用户已离线。
还有一种方法,就是利用js的onunload事件
当用户关闭浏览器的时候,可以用onunload发送一个请求,注销掉session,或者将用户状态置为离线,都可以,不过没有上面靠谱就是,因为F5刷新页面也同样触onunload事件
方法还有很多,结合你需要实现的功能和业务,多想想就出来了
‘肆’ php如何判断session是否出于开启状态
上面这个回答有问题。如果$_SESSION本来就没有值,那么就算已经调用了session_start()那么这个$_SESSION最终还是空的,正确严禁的答案是:5.4及以上可以用session_status()的返回值来判断,5.4以下用session_id()是否有值来判断,当然,5.4也可以用这种方法判断
参考代码:
图片FROM: php官方手册
‘伍’ php中怎样判断session过期
SESSION 的有效时间在 php.ini 里配置。
过期以后 SESSION 变量值为 NULL ,任意判断一个 SESSION 变量值即可。
‘陆’ php服务器端怎样获得session
你可以按下面的步骤试一下:
一、首先确认你在首页上对session已经正确赋值(测试的方法是在首页赋值一个session后再取出并显示,看看结果是否能够输出)
二、你确认你在子页面中取出的session就是首页所赋值的session,没有写错字符,是否把0看成了O,把1看成了L
三、session_start()函数不但在赋值页需要打开,在取值页面也是要开的,而且你确认session_start位于所有输出之前开启的吗?(也就是说,在session_start()函数之前,不能存在什么echo
/print/print_r/var_mp/之类的能够在网页上打印文本的语句!)
四、你是否确定你测试你自己网站所使用的浏览器开启了cookie,是否因为防止广告跟踪等关闭了浏览器的cookie(因为session基于cookie)
五、如果还是不行,你打开你的php.ini文件,查找到[Session],然后在里面看一下session到底有没有开启、目录设置在哪里,PHP是否对所设置的目录拥有读写权限(Linux)、是否使用了数据库存储等等
如果你确认了以上这几条,还是没办法解决这个问题,你可以短信我,我给你我的Q之后远程帮你调试。
‘柒’ PHP如何实现非要登陆才可以打开,不登陆直接打开不行!我用SEESION怎么办不到,该怎么写啊!
在php页面的最上面部分,写上判断语句,判断session中是否有对应的用户信息就可以了呀。
流程是
1、登录程序判断登录的信息是否正确,正确的话,将一些必要的用户信息写入session中,比如$_SESSION['username']='admin',$_SESSION['userid']='1';
2、判断是否登录,从session中读取$_SESSION['username'],$_SESSION['userid'],看值是否存在(这个是最简单的判断),如果存在,就说明登录成功。