不要了, cookie 和 session 都做不到,因為, 那都是有時間限制的 .
從 http 協議本身來看,你只能通過 cookie 或 session 知道一個用戶在多久以前訪問過站點. 卻不能以此來拒絕用戶再次登入 , 因為,也許用戶關閉了原來的窗口, 只好重新登入 ...
從 http 協議本身來看,你只能通過 cookie 或 session 知道一個用戶在多久以前訪問過站點. 卻不能以此來拒絕用戶再次登入 , 因為,也許用戶關閉了原來的窗口, 只好重新登入 ...
<scriot>
function logout(){
window.open( "logout.php ");
}
</script>
logout.php用来更新数据库
<?php
session_start();
include_once "connect.php";
$link=@mysql_connect($host,$loginname,$password) or exit();
@mysql_select_db("user") or exit();
$query="update studenttable set status='off' where uid='$session_id'";
$result=mysql_query($query) or die("更新错误!");
session_unregister("session_id");
session_unregister("session_pwd");
session_unregister("session_stuname");
// 为了扩充,可以在这里加入语句,算是系统消息
?><html>
<head></head>
<body>
<script language="Javascript">
window.close();
</script>
</body>
</html>
A1: 这做不到, 我相信我可以驳倒你给出的任何方法
数据库记录? cookie?...都没用, 如果用户的机器s机或者reboot了怎么办
Q2: 如果要禁止用户在一部机器上登录多个帐号,又怎么做?
A2: 这个问题比较难说, 严格说, 你也没有办法做到.
检查ip? 不行...如果几个用户在LAN内, 他们的ip都一样, 难道你只允许他们中一个人上论坛?
http://expert.csdn.net/Expert/TopicView1.asp?id=1378890
A1: 这做不到, 我相信我可以驳倒你给出的任何方法
数据库记录? cookie?...都没用, 如果用户的机器s机或者reboot了怎么办
B1:数据库可以解决s机或者reboot的,如果用户已经登陆,就扫描数据库
看是不是有其他用户的时间超时了,如果有其他用户超时的 就kick out!
这样一来 任何时候都不会有用户看到其他用户的尸体!
Q2: 如果要禁止用户在一部机器上登录多个帐号,又怎么做?
A2: 这个问题比较难说, 严格说, 你也没有办法做到.
检查ip? 不行...如果几个用户在LAN内, 他们的ip都一样, 难道你只允许他们中一个人上论坛?
B2:完全可以,只要在用户机器上留下点标记就行了,比如一个记录随机数字的cookie,然后在数据库写上同样的cookie信息,用户请求时,获取cookie的信息和数据库比较,如果发现数据库有就返回信息:一个机器只能一个帐户!
只要随机数唯一就行!
因為, cookie 或者 Session ( 數據庫,不提也罷, 只是用 cookie+數據庫實現 session 而已 )都不能作判斷用戶是否確實在線. ( 只能做到 : 如果1分鐘前還有訪問,我就假設他現在還在線,如此假設而已 )