ASP网页中如何判断用户的登陆次数,并在每次登陆成功后登陆次数加1,我连接的数据库

作者&投稿:糜爸 (若有异议请与网页底部的电邮联系)
ASP作的用户登陆系统如何加登陆次数限制?~

你这个限制似乎是一点都没用噢
应该是连续登录错误次数三次吧

给数据库多一个登录的错误次数和时间的设置就是了
默认是0
登录错误
是否第一次登录错误 判断时间 是 错误次数+1
否 错误次数1 时间更新为当前时间

到3了 就限制再次登录
当然要判断错误的时间 登录成功后更新该字段为0

你没有说详细。我理解的是:未登陆的用户每访问一次则点击数加1,登陆用户是不加的。

照这个思路写个解决方案:

page_load里判断是否登陆,未登陆就执行对应的小说点击量加1操作,根本无需cookie。

或者是这样的一个情况,对未登陆用户及对登陆用户实行cookie记录,每日每机只算一次点击,那么如下:

未登陆时的判断:
cookie是否存在
存在的情况
检查cookie记录的相应文章的最后的访问日期是否小于当天的日期。
若小于,则执行相应小说点击量加1操作。

不存在的情况
创建并记录相应文章的最后访问日期。
执行相应小说点击量加1操作。

登陆时的判断:
同上

有个弊病就是,cookie被清掉以后,登陆用户会导致重复记录。若你是不允许出现此情况,建议建立一个表,专门用于存储登陆用户小说浏览的记录,登陆后访问小说时就直接下数据库查询当前用户在这个小说里是否留下访问记录,若有则无需给此小说点击量加1

∈裁词?ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条。想不想了解如何实现分页显示?请看本文!

《动态网站设计十八般武艺 --ASP 篇》一文从第一期至今已和朋友们一起度过了大半个年头,相信通过在这一段时间中的学习、实践到再学习、再实践,大家已经能够熟练运用 ASP 的内建对象、 ActiveX 组件去编写一些基本的 ASP 应用程序。从我收到的朋友们的来信中可以明显的感觉到,大家的 ASP 功力正不断地提升。最近很多朋友来信希望我写一些 ASP 在现实运用中的实例。因此,从本期开始我决定将《动态网站设计十八般武艺 --ASP 篇》的定位从介绍和学习 ASP 基础知识转向到 ASP 实际运行的探讨和深化。应朋友们的要求,在本期中我将给大家着重谈一谈“ADO 存取数据库时如何分页显示”的问题。
什么是 ADO 存取数据库时的分页显示?如果你使用过目前众多网站上的电子公告板程序的话,那你应该会知道电子公告板程序为了提高页面的读取速度,一般不会将所有的帖子全部在一页中罗列出来,而是将其分成多页显示,每页显示一定数目的帖子数,譬如 20 条。这就是数据库查询的分页显示,如果你还不明白,去看看 yahoo 等搜索引擎的查询结果就会明白了。

那么究竟如何才能做到将数据库的查询结果分页显示呢?其实方法有很多,但主要有两种:

一、将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset 对象所提供的几个专门支持分页处理的属性: PageSize( 页大小 )、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 ) 来管理分页处理。

二、根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。

两者的主要差别在于前者是一次性将所有记录都读入内存然后再根据指示来依次做判断分析从而达到分页显示的效果,而后者是先根据指示做出判断并将规定数目的符合查询条件的记录读入内存,从而直接达到分页显示的功能。

我们可以很明显的感觉到,当数据库中的记录数达到上万或更多时,第一种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要将所有符合条件的记 娣旁诜�衿髂诖嬷校�缓笤诮�蟹忠车却�恚�绻��庇谐�? 100 个的客户在线查询,那么 ASP 应用程序的执行效率将大受影响。但是,当服务器上数据库的记录数以及同时在线的人数并不是很多时,两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种方法的 ASP 程序编写相对第二种方法要简单明了得多。

在这里作者就以我们常见的 ASP BBS 程序为例,来给大家分析一下如何在 BBS 程序里实现分页显示功能,由于我们一般使用的 BBS 程序的数据库记录数和同时访问的人数都不会太多,所以以下程序实例是使用的先前所介绍的第一种分页显示方法。

进行 ADO 存取数据库时的分页显示,其实就是对 Recordset 的记录进行操作。所以我们首先必须了解 Reordset 对象的属性和方法:
BOF 属性:目前指标指到 RecordSet 的第一笔。

EOF 属性:目前指标指到 RecordSet 的最后一笔。

Move 方法:移动指标到 RecordSet 中的某一条记录。

AbsolutePage 属性:设定当前记录的位置是位于哪一页 AbsolutePosition 属性:目前指标在 RecordSet 中的位置。

PageCount 属性:显示 Recordset 对象包括多少“页”的数据。

PageSize 属性:显示 Recordset 对象每一页显示的记录数。

RecordCount 属性:显示 Recordset 对象记录的总数。

下面让我们来详细认识一下这些重要的属性和方法

一、 BOF 与 EOF 属性

通常我们在 ASP 程序中编写代码来检验 BOF 与 EOF 属性,从而得知目前指标所指向的 RecordSet 的位置,使用 BOF 与 EOF 属性,可以得知一个 Recordset 对象是否包含有记录或者得知移动记录行是否已经超出该 Recordset 对象的范围。

如: $#@60; % if not rs.eof then ... %$#@62;

$#@60; % if not (rs.bof and rs.eof) %$#@62;

若当前记录的位置是在一个 Recordset 对象第一行记录之前时, BOF 属性返回 true,反之则返回 false。

若当前记录的位置是在一个 Recordset 对象最后一行记录之后时, EOF 属性返回 true,反之则返回 false。

BOF 与 EOF 都为 False:表示指标位于 RecordSet 的当中。

BOF 为 True:目前指标指到 RecordSet 的第一笔记录。 EOF 为 True:目前指标指到 RecordSet 的最后一笔记录。

BOF 与 EOF 都为 True:在 RecordSet 里没有任何记录。

二、 Move 方法

您可以用 Move 方法移动指标到 RecordSet 中的某一笔记录,语法如下:

rs.Move NumRecords,Start

这里的“rs”为一个对象变量,表示一个想要移动当当前记录位置的 Recordset 对象;“NumRecords”是一个正负数运算式,设定当前记录位置的移动数目;“start”是一个可选的项目,用来指定记录起始的标签。

所有的 Recordset 对象都支持 Move 方法,如果 NumRecords 参数大于零,当前记录位置向末尾的方向移动;如果其小于零,则当前记录位置向开头的方向移动;如果一个空的 Recordset 对象调用 Move 方法,将会产生一个错误。

MoveFirst 方法:将当前记录位置移至第一笔记录。

MoveLast 方法:将当前记录位置移至最后一笔记录。

MoveNext 方法:将当前记录位置移至下一笔记录。 MovePrevious 方法:将当前记录位置移至上一笔记录。

Move [n] 方法:移动指标到第 n 笔记录, n 由 0 算起。

三、 AbsolutePage 属性

AbsolutePage 属性设定当前记录的位置是位于哪一页的页数编号;使用 PageSize 属性将 Recordset 对象分割为逻辑上的页数,每一页的记录数为 PageSize( 除了最后一页可能会有少于 PageSize 的记录数 )。这里必须注意并不是所有的数据提供者都支持此项属性,因此使用时要小心。

与 AbsolutePosition 属性相同, AbsolutePage 属性是以 1 为起始的,若当前记录为 Recordset 的第一行记录, AbsolutePage 为 1。可以设定 AbsolutePage 属性,以移动到一个指定页的第一行记录位置。

四、 AbsolutePosition 属性

若您需要确定目前指标在 RecordSet 中的位置,您可以用 AbsolutePosition 属性。

AbsolutePosition 属性的数值为目前指标相对於第一笔的位置,由 1 算起,即第一笔的 AbsolutePosition 为 1。

注意 , 在存取 RecordSet 时,无法保证 RecordSet 每次都以同样的顺序出现。

若要启用 AbsolutePosition,必须先设定为使用用户端 cursor( 指针 ), asp 码如下:

rs2.CursorLocation = 3

五、 PageCount 属性

使用 PageCount 属性,决定 Recordset 对象包括多少“页”的数据。这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。必须注意也并不是所有的数据提供者都支持此项属性。

六、 PageSize 属性

PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,使用它就可以决定多少记录组成一个逻辑上的“一页”。设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。 PageSize 属性能随时被设定。
七、 RecordCount 属性

这也是一个非常常用和重要的属性,我们常用 RecordCount 属性来找出一个 Recordset 对象包括多少条记录。如: $#@60; % totle=RS.RecordCount %$#@62;

在了解了 Recordset 对象的以上属性和方法后,我们来考虑一下,如何运用它们来达到我们分页显示的目的。首先,我们可以为 PageSize 属性设置一个值,从而指定从记录组中取出的构成一个页的行数;然后通过 RecordCount 属性来确定记录的总数;再用记录总数除以 PageSize 就可得到所显示的页面总数;最后通过 AbsolutePage 属性就能完成对指定页的访问。好象很并不复杂呀,下面让我们来看看程序该如何实现呢?

我们建立这样一个简单的 BBS 应用程序,它的数据库中分别有以下五个字段:“ID”,每个帖子的自动编号;“subject”,每个帖子的主题;“name”,加帖用户的姓名;“email”,用户的电子邮件地址;“postdate”,加帖的时间。数据库的 DSN 为“bbs”。我们将显示帖子分页的所有步骤放在一个名为“ShowList()”的过程中,方便调用。程序如下:

----BBS 显示帖子分页----

$#@60; % Sub ShowList() %$#@62;
$#@60; %
PgSz=20 设定开关,指定每一页所显示的帖子数目,默认为20帖一页
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
sql = "SELECT * FROM message order by ID DESC"
查询所有帖子,并按帖子的ID倒序排列
Conn.Open "bbs"
RS.open sql,Conn,1,1
If RS.RecordCount=0 then
response.write "$#@60; P$#@62;$#@60; center$#@62;对不起,数据库中没有相关信息!$#@60; /center$#@62;$#@60; /P$#@62;"
else
RS.PageSize = Cint(PgSz) 设定PageSize属性的值
Total=INT(RS.recordcount / PgSz * -1)*-1 计算可显示页面的总数
PageNo=Request("pageno")
if PageNo="" Then
PageNo = 1
else
PageNo=PageNo+1
PageNo=PageNo-1
end if
ScrollAction = Request("ScrollAction")
if ScrollAction = " 上一页 " Then
PageNo=PageNo-1
end if
if ScrollAction = " 下一页 " Then
PageNo=PageNo+1
end if
if PageNo $#@60; 1 Then
PageNo = 1
end if
n=1
RS.AbsolutePage = PageNo
Response.Write "$#@60; CENTER$#@62;"
position=RS.PageSize*PageNo
pagebegin=position-RS.PageSize+1
if position $#@60; RS.RecordCount then
pagend=position
else
pagend= RS.RecordCount
end if
Response.Write "$#@60; P$#@62;$#@60; font color=Navy$#@62;$#@60; B$#@62;数据库查询结果:$#@60; /B$#@62;"
Response.Write "(共有"&RS.RecordCount &"条符合条件的信息,显示"&pagebegin&"-"&pagend&")$#@60; /font$#@62;$#@60; /p$#@62;"
Response.Write "$#@60; TABLE WIDTH=600 BORDER=1 CELLPADDING=4 CELLSPACING=0 BGCOLOR=#FFFFFF$#@62;"
Response.Write "$#@60; TR BGCOLOR=#5FB5E2$#@62;$#@60; FONT SIZE=2$#@62;$#@60; TD$#@62;$#@60; B$#@62;主题$#@60; /B$#@62;$#@60; /TD$#@62;$#@60; TD$#@62;$#@60; B$#@62;用户$#@60; /B$#@62;$#@60; /TD$#@62;$#@60; TD$#@62;$#@60; B$#@62;Email$#@60; /B$#@62;$#@60; /TD$#@62;$#@60; TD$#@62;$#@60; B$#@62;发布日期$#@60; /B$#@62;$#@60; /TD$#@62;$#@60; /FONT$#@62;$#@60; TR BGCOLOR=#FFFFFF$#@62;"
Do while not (RS is nothing)
RowCount = RS.PageSize
Do While Not RS.EOF and rowcount $#@62; 0
If n=1 then
Response.Write "$#@60; TR BGCOLOR=#FFFFFF$#@62;"
ELSE
Response.Write "$#@60; TR BGCOLOR=#EEEEEE$#@62;"
End If
n=1-n %$#@62;
$#@60; TD$#@62;$#@60; span style="font-size:9pt"$#@62;$#@60; A href=view.asp?key=$#@60; % =RS("ID")%$#@62;$#@62;$#@60; % =RS("subject")%$#@62;$#@60; /A$#@62;$#@60; /span$#@62;$#@60; /td$#@62;
$#@60; TD$#@62;$#@60; span style="font-size:9pt"$#@62;$#@60; % =RS("name")%$#@62;$#@60; /A$#@62;$#@60; /span$#@62;$#@60; /td$#@62;
$#@60; TD$#@62;$#@60; span style="font-size:9pt"$#@62;$#@60; a href="mailto:$#@60; % =RS("email")%$#@62;"$#@62;$#@60; % =RS("email")%$#@62;$#@60; /a$#@62;$#@60; /span$#@62; $#@60; /TD$#@62;
$#@60; TD$#@62;$#@60; span style="font-size:9pt"$#@62;$#@60; % =RS("postdate")%$#@62;$#@60; /span$#@62; $#@60; /td$#@62;
$#@60; /TR$#@62;
$#@60; %
RowCount = RowCount - 1
RS.MoveNext
Loop
set RS = RS.NextRecordSet
Loop
Conn.Close
set rs = nothing
set Conn = nothing
%$#@62;
$#@60; /TABLE$#@62;
$#@60; FORM METHOD=GET ACTION="list.asp"$#@62;
$#@60; INPUT TYPE="HIDDEN" NAME="pageno" VALUE="$#@60; % =PageNo %$#@62;"$#@62;
$#@60; %
if PageNo $#@62; 1 Then
response.write "$#@60; INPUT TYPE=SUBMIT NAME=ScrollAction VALUE= 上一页 $#@62;"
end if
if RowCount = 0 and PageNo $#@60; $#@62;Total then
response.write "$#@60; INPUT TYPE=SUBMIT NAME=ScrollAction VALUE= 下一页 $#@62;"
end if
response.write "$#@60; /FORM$#@62;"
End if
%$#@62;
$#@60; % End Sub %$#@62;

相信大家都应该能完全读懂上面的程序,因此作者就不在此详细解释了。值得注意的是在这段程序中运用了一个小技巧 $#@60; INPUT TYPE="HIDDEN" NAME="pageno" VALUE="$#@60; % =PageNo %$#@62;"$#@62;,这是用来在每次调用该 ASP 文件时传递数据的“暗道”,由于我们需要在每次调用程序时传递代表当前页码的参数,可能大家会想到使用 session,但是从节省系统资源和通用性来讲,用这样一个隐藏的 form 来传递数据将会达到更好的效果。

好了,又到了说再见的时候了,如果你没完全看懂本篇中所列的程序,那你必须加把油,看一看 VbScript 的语法;如果你还有某些疑问,可以“妹儿”我,我将尽力解答;如果你有什么更好的建议也千万要来信告诉我哦 :)
[编辑:gigi_miao] [返回网易学院首页] []

update zhuce set denglucishu=denglucishu+1 where 用户=条件
登录成功的时侯执行一下就行,很简单的

update zhuce set denglucishu=denglucishu+1 where 用户=什么

要存入数据库,就使用更新语句Update就可以了


如何查询SP业务?
中国移动SP短信业务常用查询退订方法: 查询已订业务: 1.发送“0000”至186201,可查询、退订所有移动梦网短信业务; 可发“QX序号”实现单项业务退订,退订72小时内免费。 2.发送“0000”到186202,可查询、退订所有定制的梦网WAP业务;可发“QX序号”实现单项业务退订,退订72小时内免费。 3.发送“0000”至186203,可...

SP行业的SP的分类
事实上ASP形式可以称之为基于第三方的服务商,所提供的服务是在网络环境中进行的,是对软件开发、应用服务和互联网技术的整合,从而为用户提供端到端的应用解决方案。2、从企业业务开展的角度来看,SP主要可以分成三大类:(1)门户型 SP就是由门户网站提供的短信服务。主要有搜狐、新浪、网易、中华网、...

【高分悬赏】ICP ,ISP ,SP各是什么,三者是什么关系
ICP经营许可证是指各地通信管理部门核发的《中华人民共和国增值电信业务经营许可证》中的其中之一。通过互联网向上网用户提供有偿信息、网上广告、代制作网页、电子商务及其它网上应用服务的公司必须办理ICP网络经营许可证。国家对经营性ICP实行许可制度。SP(Service Provider)证-移动信息服务业务经营许可证,...

“WSSP”具体指什么?
例如,开发者可能会利用C++的经验来开发这些工具,以处理XML数据并提供服务。总的来说,WSSP是网络开发中不可或缺的概念,它在服务器端编程中的应用案例丰富,适用于多种场景,如XML文档的处理和Web浏览器的显示。这些知识主要用于学习和交流,版权归属于原作者,读者在使用时应自行判断并注意版权问题。

三国杀里的sp什么和 spank 是一个意思吗?如果不是请告诉我分别是什么意...
你好,sp指的是special,“特别的”的意思。

sp网站怎么进
1、首先要进入到汉责文化sp网站,必须知道自己的网站登录名称和密码。2、其次直接输入网址通过浏览器进入就可以了。3、最后如需要注册,就根据步骤注册。

ICP ,ISP ,SP各是什么,三者是什么关系?
ISP经营许可证全称增值电信业务经营许可证-因特网接入服务业务。所谓全网ISP证是经营全国范围的ISP资质,地网ISP证是经营公司所在省份的ISP业务资质,这两者的区别就是经营范围的不同。SP证分为全网SP证和地网SP证,所谓全网SP证是经营全国范围的SP资质,地网SP证是经营公司所在省份的SP业务资质,这两者的...

sp和白菜是什么意思
就一定会有UI设计师。除了网页,像APP、图标、字体、车机界面、数据可视化等等都少不了UI设计师的努力。现在行业对于UI设计师的要求也越来越高,除了基本的设计能力外,最好还要懂用户体验、懂交互。会商业插画手绘、C4D等方面的人才更是大公司都争抢的高薪人才,现在招聘网站上的薪资都超过20k。

网页设计html语言中定义css的代码问题
body,td,th { font-family: Arial, Helvetica, sans-serif;font-size: 7.5pt;color: #999999;line-height: 11pt;} 那么你可以在index.htm中重新定义th,只要在语句之后就有效,例如: th { font-size: 13pt;color: #123456;line-height: 18pt;} 二、如果只是部分th表格需要使用特殊格式...

增值电信SP是什么服务
增值电信SP即移动网信息服务,特指手机网络的服务和内容提供商,指移动互联网服务内容应用服务的直接提供者,负责根据用户的要求开发和提供适合手机用户使用的服务。增值电信SP的业务包括内容:娱乐、游戏、短信、彩信,WAP、铃声下载。那么如何开展这项业务呢?首先需要具备sp经营许可证,但是并非所有的机构都...

招远市13373927614: 在ASP.NET中怎么获取用户登陆的次数 -
裔贩紫地: 提供2个方法.1:用cookie保存次数,每次登陆成功cookie里面+1.(保存至客户端的)2:在用户表添加一个登陆次数字段,每次登陆成功后更新.(登录次数保存至服务端)

招远市13373927614: asp.net如何判断用户重复登录 -
裔贩紫地: 实现思路: 用户登录成功后,将用户登录信息存放到Hashtable类型的Application[“Online”]里面,其键值为SessionID,其Value值为用户ID;当用户注销时,调用Session.Abandon;在Global.asax里面的SessionEnd事件中,将用户ID从Hashtable中删除;在用户访问页面时,察看Hashtable中是否有对应的用户ID如果没有则判断用户不在线(用户不在线的原因可能是按了注销按钮、网页超时等)

招远市13373927614: asp中如何利用COOKISE做一个网页计数器用来记录登陆的次数 -
裔贩紫地: 做个判断啊if Request.Cookies("visittimes") = "" then '如果为空 表示为新访客 Response.Cookies("visittimes") = 1...

招远市13373927614: 求asp限制用户浏览某页面次数
裔贩紫地: 用Cookie就可以,记录用户名与登陆次数,每次访问1.asp取Cookis值判断即可 有2种使用cookie的基本方式: 1、将cookie写入访问者的计算机(使用 RESPONSE 命令) 2、从访问者的计算机中取回cookie(使用 REQUEST 命令)

招远市13373927614: ASP判断24小时内是否重复登录
裔贩紫地: 用SESSION或COOKIES都没用的,只能保存在客户端,判断用户登录的时候,顺便将当前日期写入一个字段中,然后再判断当前日期跟这个字段是否一样,如果一样的话,则省略掉加1的保存,反过来,则将字段+1

招远市13373927614: asp如何获得用户当天的登录次数
裔贩紫地: 用session就可以

招远市13373927614: ASP.NET中怎样记录登陆次数 -
裔贩紫地: 你指的是 永久记录还是 iis服务运行后 记录.前者的话需要 使用数据库.创建表来实现喔. 该表需要和 用户关联.如果用户登录一次 就在该表中 +1 就解决了.如果是后者 使用 application全局变量 就可以了. 当然 全局变量 中 存储 的东西不要太大了. 存储 一个 hashTable 或者 一个 List泛型数组. .这个就看你具体的需求了

招远市13373927614: 求asp后台代码 统计会员登陆次数的
裔贩紫地: SQLb="Select * from user where id='"&ids&"'" Rem 根据传过来的id判断会员(user)是谁 set rs=server.createobject("adodb.recordset") Rem 建立记录集 rs.open SQLb,conn,1,3 Rem 以可写方式打开数据库的该表 rs("dlcs")=rs("dlcs")+1 Rem "dlcs"这个是我设定的列的登陆次数表 rs.update Rem 更新下数据库 rs.close Rem 关闭数据连接

招远市13373927614: 请问在ASP中如何判断用户已登录 -
裔贩紫地: ASP判断登陆最常用的方法是:session,但是session容易过期或丢失,如果服务器过忙而经常回收进程则会造成SESSION丢失.cookie是保存在客户端的,也是常用来判断用户是否登陆,但是对人用户来说不太安全

招远市13373927614: 如何用asp代码控制一个网页账号只能用一次 -
裔贩紫地: 网页账号什么意思?如果说在你的ASP网站上注册一个用户账号,只能使用一次的话 你可以在数据表中增加一个字段,用来记录该用户登陆使用次数,如果只应许一次的话 第二次登陆,我们再读取该字段值,就可以判断出来了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网