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

时间:2012-07-26 12:51:41

标签: asp-classic global.asa

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

怎么办?

我的users表有这些行(我正在使用Access):

UserID     text
Username   text
Password   text
Email      text
Hash       text
join_date  date/time
active     Yes/No

P.s:由于我的网站存储在公共服务器而不是专用服务器上,因此我无法访问IIS配置

1 个答案:

答案 0 :(得分:0)

如果您无法创建计划任务来运行ASP脚本,那么接下来最好的事情可能是在Session_OnStart事件中的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