分页程序的问题

yuchen2006 2006-07-13 07:58:48
问题:
If not isNumeric(page) then page=1 'page不是数字
if isEmpty(page) or Cint(page) < 1 then 'page 为空或小于1
page = 1
elseif Cint(page) >= allPages then 'page 值大于总页数
page = allPages
end if
rs.AbsolutePage = page
这是分页程序中的一段代码,我想知道,什么情况下page才不是数字?什么时候会为空,什么时候会大于总页数?? 下面是整个程序的代码


源代码:
<html>

<head>
<title>分页显示</title>
</head>

<body>
<h2 align=center>用户列表</h2>
<table width = 90% align = center cellspacing = 1 cellpadding = 2 border=1 bordercolor=#808080 bordercolordark=#FFFFFF bordercolorlight=#E1F5FF>
<tr>
<td align=center width=20% bgcolor=#E1F5FF><b>用 户 名</b></td>
<td align=center width=20% bgcolor=#E1F5FF><b>用户姓名</b></td>
<td align=center width=20% bgcolor=#E1F5FF><b>电子邮箱</b></td>
</tr>
<%
dim conn,connstr,SQLServerName,SQLDBUserName,SQLDBPassword,SQLDBName
SQLServerName="(local)" '数据库服务器名或者IP,本机填“(local)”
SQLDBUserName="sa" '数据库帐号
SQLDBPassword="" '数据库密码
SQLDBName="bank" '数据库名称
'定义数据库的提供者,数据库所在服务器,登录用户名,登录密码以及数据库名
StrConnect="Provider=SQLOLEDB.1;Persist Security Info=False;Server="&SQLServerName&";User ID="&SQLDBUserName&";Password="&SQLDBPassword&";Database="&SQLDBName&""
'创建Connection 对象
Set Conn = Server.CreateObject ("ADODB.Connection")
Conn.Open StrConnect '连接数据库


'定义RecordSet对象
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "Select * from Users",Conn,1,1
if rs.eof and rs.bof then '不存在记录
response.Write "目前没有用户记录"
else '存在记录
counts=5 '每页显示记录条数
rs.pageSize = counts '每页记录数
allpages = rs.pageCount '总页数
page = Request("page") '从浏览器取得当前页
If not isNumeric(page) then page=1 'page不是数字
if isEmpty(page) or Cint(page) < 1 then 'page 为空或小于1
page = 1
elseif Cint(page) >= allPages then 'page 值大于总页数
page = allPages
end if
rs.AbsolutePage = page '转到某页头部
Do While (Not rs.eof) and counts>0 '循环显示指定条数的记录

%>

<tr>
<td><%=rs("UserName")%></td>
<td><%=rs("Ename")%></td>
<td><%=rs("Email")%></td>
</tr>
<%
counts = counts - 1 '每页显示条数减1
rs.movenext '指向下一条记录
if rs.eof then exit do '已经到底最后一条记录则跳出
loop '结束循环
End If
%>
</table><table align = center>
<tr><td height=50 valign=top align = center>
<%
'显示总留言条数
response.write "<br>       当前共有"&RS.RecordCount&"条用户记录 "
if page = 1 then '到达第一页
response.write "<font color=darkgray>首页 前页</font>"
else '不是第一页
response.write "<a href="&request.ServerVariables("script_name")&"?page=1>首页</a> <a href="&request.ServerVariables("script_name")&"?page="&page-1&">前页</a>"
end if
if page = allpages then '到达最后一页
response.write "<font color=darkgray> 下页 末页</font>"
else '不是最后一页
'建立超级链接
response.write " <a href="&request.ServerVariables("script_name")&"?page="&page+1&">下页</a> <a href="&request.ServerVariables("script_name")&"?page="&allpages&">末页</a>"
end if

response.write " 第"&page&"页 共"&allpages&"页 " '显示当前页数信息
%>

</tr></td>
</table>

</body>

</html>
...全文
172 2 打赏 收藏 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
kencorn 2006-07-13
  • 打赏
  • 举报
回复
我也想知道PAGE什么时候会为空,什么时候会大于总页数??
PAGE不可能有为是数字的时候吧???
等待...........

这只是判断一下page。如果浏览者直接提交
http://www.xxx.asp?page=1000 或者http://www.xxx.asp?page=1000a
这样就会出错,出错的话就会暴露出sql注入的漏洞。所以要判断一下page的
lovefm105 2006-07-13
  • 打赏
  • 举报
回复
我也想知道PAGE什么时候会为空,什么时候会大于总页数??
PAGE不可能有为是数字的时候吧???
等待...........

28,402

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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