如何实现上次登录时间的功能

zhushouqqq 2006-04-04 11:19:23
我用asp.net做一个能显示上次登录时间.做了好长时间都没能做出来(我是初学).

在点提交的时候能把客户端的时间一并提交给服务器,然后再写进数据库里.
button服务器控件没有客户端处理事件,写一个自定义服务器控件可是还没有那个能力.


在线等~~~~~~
...全文
554 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
就些结贴!
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
上面的代码,我刚测试了一下,
报错:
"Microsoft JScript 运行时错误: 'document.all.HClientTime' 为空或不是对象"

把<script></script>加到</body>就可以了.因在浏览器解释<script>的时候HClientTime还没有加载进来..


佛火 2006-04-05
  • 打赏
  • 举报
回复
其实如果要保存到数据库,,也没有必要加两个字段的。
一个字段就够用了,只是在登陆的时候,记得在更新数据的时候把上次的数据先取出来就可以了。
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
呵呵,不好意思呀,我没有看清..
佛火 2006-04-05
  • 打赏
  • 举报
回复
我测试过上面的代码,,得到时间的确是点击按钮时的时间啊。

<form id="form1" runat="server" onsubmit="GetClientTime();">

这里,,,明明也写了,在表单提交的时候执行 GetClientTime();

如果你要再明显一点,可以将上面的代码改成这样

<script>
function GetClientTime()
{
var Now = new Date();
document.all.HClientTime.value = Now.toLocaleDateString() +" "+ Now.toLocaleTimeString();
return true;
}


<form id="form1" runat="server" onsubmit="return GetClientTime();">


stormlly 2006-04-05
  • 打赏
  • 举报
回复
可以在登录的时候,在用户的表的中加2个字段,点了登录的时候,顺便更新数据库就好了
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
to : gounliey(猪头猪脑)
虽然这样可以获得客户端的时间,但是是在页面加载的时间获得的,不是在点提交按钮的时间触发的.不过还是要谢谢你的热心帮助.~
能不能实现这样一种功能呢?在点击按钮的时候首先在客户端执行一段代码,把执行的完后的结果再提交给服务器,再在服务器接受这个值并处理...好像现在有控件都没有这个功能哈,呵呵...

一般会员系统都是以服务器时间为准的,真的吗?看来我当初的想法都有问题哈,呵呵...
佛火 2006-04-05
  • 打赏
  • 举报
回复
我也想不明白你为什么要用客户端时间,,一般会员系统都是以服务器时间为准的,呵呵。。
佛火 2006-04-05
  • 打赏
  • 举报
回复
测试一下这个代码,VB.net的

页面

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test.aspx.vb" Inherits="Test" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<script>
function GetClientTime()
{
var Now = new Date();
document.all.HClientTime.value = Now.toLocaleDateString() +" "+ Now.toLocaleTimeString();
}
</script>
<body>
<form id="form1" runat="server" onsubmit="GetClientTime();">
<div>
<input id="HClientTime" name="HClientTime" type="hidden" runat="server" />

<asp:Button ID="Button1" runat="server" Text="Button" /></div>
</form>
</body>
</html>



后台代码


Partial Class Test
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim ClientTime As DateTime = DateTime.Parse(HClientTime.Value)
Response.Write(ClientTime.ToString)
End Sub


End Class


ClientTime 应该就是客户端提交表单时的时间了
ycagri 2006-04-05
  • 打赏
  • 举报
回复
为什么一要客户端的时间呢?如果要做到统一用服务器端的时间是最好的,因为客户端的日期可能不统一,或者不准备,会改动,不是就不准了
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
哎,本来是在线等的.可是昨天突然断线了.

现在怎么没人回答我了哈.,.,.................................
zhushouqqq 2006-04-05
  • 打赏
  • 举报
回复
那获得的不就是服务器端时间嘛.能不能获得客户端的时间呢?

greatbag 2006-04-04
  • 打赏
  • 举报
回复
用不着客户端时间,当检查用户名密码正确后,就可以把System.DateTime.Now当作本次登录时间记录了
jxdyzwh 2006-04-04
  • 打赏
  • 举报
回复
1:可以通过COOKIE来实现,把他的失效时间设置长点
2:可以通过数据库来存储
wdx2008 2006-04-04
  • 打赏
  • 举报
回复
想实现这个功能必须把记录存入数据库,当页面执行时就执行添加这个记录,可以把时间和IP添加进去。全部记录的综合就是网页的总浏览量。
得到IP:
ip=request.ServerVariables("HTTP_X_FORWARDED_FOR")
'判断是否使用了代理服务器
if ip="" then
ip=request.ServerVariables("REMOTE_ADDR")
zhushouqqq 2006-04-04
  • 打赏
  • 举报
回复
这个我知道呀,关键是怎么把客户端的时间返回给服务器.服务器用怎么接受这个传回来的值呢?
最好详细点.
xczgb 2006-04-04
  • 打赏
  • 举报
回复
楼上正解.
jiezhi 2006-04-04
  • 打赏
  • 举报
回复
数据库里面使用两个字段来存储登录时间,一个是上次登录时间,一个是本次登录时间.
每次用户登录的时候,将本次登录时间存入上次登录时间中,将当前时间存入本次登录时间字段中
zhushouqqq 2006-04-04
  • 打赏
  • 举报
回复
自己先顶自己一下.

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧