Asp classic 在经典asp中,如何在24小时后自动删除非活动用户

Asp classic 在经典asp中,如何在24小时后自动删除非活动用户,asp-classic,global.asa,Asp Classic,Global.asa,我用经典的ASP写了一个注册系统。用户注册后将收到一封激活电子邮件。 我想删除记录(用户),如果用户并没有通过点击激活链接激活他们的帐户被发送到24小时后 你怎么能做到 “我的用户”表有以下行(我正在使用Access): 注意:我无法访问IIS配置,因为我的网站存储在公共服务器上,而不是专用服务器上如果您无法创建计划任务来运行ASP脚本,那么下一个最好的方法可能是在会话启动事件的global.asa中执行此操作。每次启动新会话(新用户访问)时,此操作都会运行。如果在“应用程序”变量中设置了最后一

我用经典的ASP写了一个注册系统。用户注册后将收到一封激活电子邮件。 我想删除记录(用户),如果用户并没有通过点击激活链接激活他们的帐户被发送到24小时后

你怎么能做到

“我的用户”表有以下行(我正在使用Access):


注意:我无法访问IIS配置,因为我的网站存储在公共服务器上,而不是专用服务器上

如果您无法创建计划任务来运行ASP脚本,那么下一个最好的方法可能是在会话启动事件的global.asa中执行此操作。每次启动新会话(新用户访问)时,此操作都会运行。如果在“应用程序”变量中设置了最后一次运行时间,则可以选择仅在设置的时间过后运行例程来删除这些用户。然而,如果你没有经常访问你的网站,那么它就不会经常运行

Sub Session_OnStart
   'Runs on application start or after 15 minutes
   If Application("LastRun") = "" Or DateDiff(n, Application("LastRun"), Now()) > 15 Then
       'Your code to delete users here, a query like this...
       'DELETE FROM [tableName] WHERE [active] = 0 AND DATEDIFF(hh, [join_date], GETDATE()) >= 24
       Application("LastRun") = Now()
   End If
End Sub

为什么不每晚运行一个脚本来查询数据库并删除任何在24小时前创建但尚未激活的记录?您真的需要在帐户创建24小时后删除它吗?我想删除24小时后未激活的帐户!我不明白你的问题。你知道他们什么时候加入的,你也知道现在的时间。你也知道他们是否激活了他们的帐户。所以你要检查的是他们加入后是否已经24小时了。如果Now-joined\u date>24hours&&active=false,删除整个用户行。是的,我知道该怎么做!(我使用的是DateDiff()),但问题是如何自动执行!!按计划:)不使用经典ASP。拥有独立的VBScript(最简单的方式)文件,并计划每24小时运行一次。谢谢John,但正如您所说,它在用户访问站点时运行,问题仍然存在,无论如何,谢谢:)
Sub Session_OnStart
   'Runs on application start or after 15 minutes
   If Application("LastRun") = "" Or DateDiff(n, Application("LastRun"), Now()) > 15 Then
       'Your code to delete users here, a query like this...
       'DELETE FROM [tableName] WHERE [active] = 0 AND DATEDIFF(hh, [join_date], GETDATE()) >= 24
       Application("LastRun") = Now()
   End If
End Sub