首页 新闻 会员 周边

一个账户不能同时登陆

0
悬赏园豆:10 [已解决问题] 解决于 2012-10-10 10:11

我使用母版页和子页实现的一个网站,母版页中有很多链接,我的需求是点击母版页中的连接session不变,而关闭页面时清除session。目的是实现一个账户不能同时登陆这个网站,如果大家有什么好的解决方案,还请求不吝赐教,谢谢!

xiaoyaner的主页 xiaoyaner | 初学一级 | 园豆:173
提问于:2012-09-04 11:11
< >
分享
最佳答案
0

加一个字段,登陆时检测该字段,如果这个字段为1表示已经登陆,则不能登陆
如果为0则可以登入。

可以定时发信号给帐号,如果没有回音,则表示非正常推出,把字段改成0

收获园豆:10
jason2013 | 小虾三级 |园豆:1998 | 2012-09-04 13:41

这个用户体验性好像不太好,我主要是想通过session或application来实现但是这个即时性不是很好

xiaoyaner | 园豆:173 (初学一级) | 2012-09-05 11:09

这个是只限用户正常退出的情况吧

xiaoyaner | 园豆:173 (初学一级) | 2012-10-10 10:11
其他回答(2)
0

楼上楼上正解:在登陆用户表中加一个字段,记录用户的登陆状态,可以用0,1表示也可以用true,false。陆时,检测字段,判断已登录提示已登录;判断未登录,修改登陆状态字段,用户登录。登出同理。

坐等新的答案

西门夔 | 园豆:172 (初学一级) | 2012-09-05 10:01

但是如果用户直接关闭浏览器或页面而不是通过退出按钮退出的话,数据就无法更新到数据库了吧

支持(0) 反对(0) xiaoyaner | 园豆:173 (初学一级) | 2012-09-05 11:00

@xiaoyaner: 不用的是.NET我不是很清楚JSP和你的是不是一样。

在JSP下,JavaScript 下有个onbeforeunload()事件,此事件是在关闭浏览器操作之前的一个事件,应该可以采用异步想后台更新登陆状态。话说你不说我还真不知道有这么个东西,我也是去网上查的,w3c中我多没找到,不知道详细细节,去网上看了,按网上的例子,写了个简单的jsp测试测试例子是可以用的,但是我看了下,只有Firefox和ie支持,我用的IE6其他的没看,360安全和极速多不行,还有opera也不行。我看了几篇文章也没细看,试了下确实有这功能,但是不知道你用asp怎么做。

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<head>
<title>123</title>
</head>
<script>
function checkLeave(){
    alert('hello');
}
</script>
</head>
<body onbeforeunload="checkLeave();">
</body>
</html>

相关的几个资料自己看下,http://hi.baidu.com/joymood/item/51d61b3abe7139ffdf222153

http://www.cnblogs.com/leochu2008/articles/1048174.html

若不行可以看下onunload()可以试试~

支持(0) 反对(0) 西门夔 | 园豆:172 (初学一级) | 2012-09-05 13:40
0

关注下,也不懂

nickycookie | 园豆:106 (初学一级) | 2012-09-05 17:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册