2011-07-07 98 views
-2

我的页面上有一个“活动用户”列表。是否有可能创建一个链接立即断开该用户的连接,然后可能重新授予他们的访问权限? 我在网上找到的地方:d 链接以杀死连接的用户的连接PHP

<?php 
if(isset($_POST['username']) && isset($_POST['password'])){ 
    $_SESSION['username']=$_POST['username']; 
} 

?> 
      <h1>Currently Active Users</h1><br/> 
      <?php 
      $d=date('c',time()-1800); 
      $q=mysql_query("select username from navigation where time>'$d'"); 
      if(mysql_affected_rows()>0){ 
       print "<ul>"; 
       while($users=mysql_fetch_array($q)){ 
        print "<li>{$users[0]}</li>"; 
       } 
       print "</ul>"; 
      } 
      ?> 
+3

你如何检测他们是活跃的?你使用基于cookie的身份验证吗? – Ben

+1

显示一些代码来解释如何列出所谓的活动用户这些论文。 –

+0

尽管你可能会认为它们是活动的,但它们通常只有短时间的连接到你的网络服务器(从而连接到数据库)。所以断开连接会很困难。顺便说一句,从什么断开? – wonk0

回答

1

创建DB名为kill与UID(USER_ID)

<?php 
include("db.php"); 
$bans = mysql_query("SELECT * FROM kill WHERE uid = ".$user_id." LIMIT 1"); 
$ban = mysql_fetch_assoc($bans); 
if ($ban) 
{ 
    mysql_query("DELETE FROM kill WHERE id = $ban[id]"); 
    die("Banned"); 
} 
0

HTTP是无状态的,所以作为一个 “连接的用户” 没有这样的事。

有些事情可以为特定用户操作会话 - 但不知道会话管理是如何实现的(假设“活动用户”这个概念与PHP会话有任何关联)。但是你没有提供关于如何填充“导航”表的任何信息。

此外,你在这里提出的代码不是很好写