那位可以解释一下这段代码

chjin 2008-04-17 11:04:28
<%
dim rndnum,codenum
Randomize
Do While Len(rndnum)<4
num1=CStr(Chr((57-48)*rnd+48))
rndnum=rndnum&num1
loop
session("codenum")=rndnum
%>

我知道是为了获取一个随机验证码,可是第三行与第五行我看不懂
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hookee 2008-04-17
  • 打赏
  • 举报
回复
48-57是0-9的ascii码
(57-48)*rnd+48)指从48-57中任取一个数 // 某区域取随机数的格式为 (max-min)*rnd + min
Chr((57-48)*rnd+48)) 就是0-9中的任意字符
No_Data_Found 2008-04-17
  • 打赏
  • 举报
回复
Do While Len(rndnum) <4 的意思是 判断 随机字符串的长度 是不是小于4 如果小于再 循环

也可以这样

<% 
dim rndnum,codenum
Randomize

rndnum=cint(9999*rnd)


for i=1 to 4-len(rndnum)
rndnum = "0" & rndnum
next

session("codenum")=rndnum

response.Write rndnum
%>

No_Data_Found 2008-04-17
  • 打赏
  • 举报
回复
48-57 为0-9 ascii码值

也可以这样


<%
dim rndnum,codenum
Randomize
Do While Len(rndnum) <4
'num1=CStr(Chr((57-48)*rnd+48))
num1=cint((57-48)*rnd)
rndnum=rndnum&""&num1
loop
session("codenum")=rndnum

response.Write rndnum
%>
QUERY123123 2008-04-17
  • 打赏
  • 举报
回复
Randomize 随机种子 就是随产生数


num1=CStr(Chr((57-48)*rnd+48)) 产生0-9之间的随机数


chjin 2008-04-17
  • 打赏
  • 举报
回复
中间的 rnd是什么意思?

28,390

社区成员

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

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