我有一个网站,例如www.mysite.com,有一个简单的登录系统。我使用PHP和MYSQL。在会议中我有:
$_SESSION['user_id']
是否可以检查用户当前是否打开了网页www.mysite.com/test.php
?
我也可以使用jQuery和Ajax,但是如何?
在数据库中我有例如:
Users:
id | username | is_on_test
1 | admin | 0
2 | user | 1
如果用户在test.php上,我想在数据库中的is_on_test值为1,如果不在test.php,则应为0。
答案 0 :(得分:0)
当用户点击页面时,您可以在标题中查看是否存在$_SESSION['user_id'];
。如果是,请将$_SERVER["REQUEST_URI"]
中存储的值写入该用户记录下的数据库中。这将跟踪他们已经登陆的最新页面。
$sql = "Update users set lastPage='".$_SERVER["REQUEST_URI"]."' where id=".$_SESSION['user_id'];
有关$_SERVER
数组的更多信息:http://php.net/manual/en/reserved.variables.server.php
答案 1 :(得分:0)
每20或30秒或任何你喜欢的频率调用一个ajax脚本。 test.php的
// fire below insertion to database
if (there exist any row of current logged in user on <table>)
update <table> set time_stamp = Now() where user_id = $_SESSION['userid']
else
insert into <table> (id,time_stamp) VALUES ($_SESSION['userid'],Now())
在ADMIN.PHP上显示用户列表
//fire below query for displaying users
select * from <table> where time_stamp in between 'Now()-20' and 'Now()+20'
确保插入/更新在每个(20秒或其他)间隔内查询插入/更新时间戳
答案 2 :(得分:0)
您想如何检查用户是否在当前页面上?
如果是通过数据库,您只需编写一个函数,将$ _SESSION数据中的用户详细信息及其所在页面插入到数据库中......