找错误。。。谁找对了就把分都给他!

gimmyfox 2005-03-22 03:44:27
这是一个交接班的验证页面
其中四人交接
但是不一定四人都在
至少两个吧。
主要请各位看看有没有语法 逻辑错误 多谢啊!

<%@language=vbscript%>
<!--#include file="../../conn/conn.asp" -->
<%
if session("username")="" then
response.redirect "../../default.asp"
end if
dim truename1,truename2,truename3,truename4,password1,password2,password3,password4
dim name1,name2,name3,name4
name1=null
name2=null
name3=null
name4=null
truename1=trim(request.Form("truename1"))
truename2=trim(request.Form("truename2"))
truename3=trim(request.Form("truename3"))
truename4=trim(request.Form("truename4"))
password1=trim(request.Form("password1"))
password2=trim(request.Form("password2"))
password3=trim(request.Form("password3"))
password4=trim(request.Form("password4"))
set rs=server.createobject("adodb.recordset")
sql="select * from user"
rs.open sql,conn,1,1
do while not rs.eof
if trim(rs("truename")=trim(truename1) then
call checkpassword1
end if
if trim(rs("truename")=trim(truename2) then
call checkpassword2
end if
if trim(rs("truename")=trim(truename3) then
call checkpassword3
end if
if trim(rs("truename")=trim(truename4) then
call checkpassword4
end if
rs.movenext
loop
jilu
set rs=nothing

sub checkpassword1()
if trim(rs("jiaojie"))=trim(password1) then
name1=truename1
end if
end sub

sub checkpassword2()
if trim(rs("jiaojie"))=trim(password2) then
name2=truename2
end if
end sub

sub checkpassword3()
if trim(rs("jiaojie"))=trim(password3) then
name3=truename3
end if
end sub

sub checkpassword4()
if trim(rs("jiaojie"))=trim(password4) then
name4=truename4
end if
end sub

sub jilu
set rs1=server.createobject("adodb.recordset")
sql1="select * from djjbantime where (id is null)"
rs1.open sql1,conn,1,3
rs1.addnew
dim mtime
mtime=now()
rs1("truename1")=name1
rs1("truename2")=name2
rs1("truename3")=name3
rs1("truename4")=name4
rs1("endtime")=cdate(mtime)
rs1.update
end sub
%>
...全文
188 点赞 收藏 23
写回复
23 条回复
gimmyfox 2005年03月26日
搞定!散分!
回复 点赞
gimmyfox 2005年03月26日
汗。。。。
copy的要命了。。。
多谢!
回复 点赞
myvicy 2005年03月26日
set rs2=server.createobject("adodb.recordset")
sql2="select * from users where Password='"&password2&"' and truename='"&truename2&"'"
rs2.open sql2,conn,1,1
if trim(rs2("truename"))=trim(truename2) then
' ^'这里
session("person2")=trim(rs2("truename"))
' ^'这里
end if


拜托你第二个rs2取值的时候也用rs2啊!别的地方也存在这个问题。
回复 点赞
gimmyfox 2005年03月26日
最新代码!!!
快要。。。。。。

<%@language=vbscript%>
<!--#include file="../../conn/conn.asp" -->
<%
if session("username")="" then
response.redirect "../../default.asp"
end if
dim truename1,truename2,truename3,truename4,password1,password2,password3,password4
truename1=replace(trim(request.Form("truename1")),"'","")
truename2=replace(trim(request.Form("truename2")),"'","")
truename3=replace(trim(request.Form("truename3")),"'","")
truename4=replace(trim(request.Form("truename4")),"'","")
password1=replace(trim(request.Form("password1")),"'","")
password2=replace(trim(request.Form("password2")),"'","")
password3=replace(trim(request.Form("password3")),"'","")
password4=replace(trim(request.Form("password4")),"'","")
session("person1")=null
session("person2")=null
session("person3")=null
session("person4")=null
set rs=server.createobject("adodb.recordset")
sql="select * from users where Password='"&password1&"' and truename='"&truename1&"'"
rs.open sql,conn,1,1
if trim(rs("truename"))=trim(truename1) then
session("person1")=trim(rs("truename"))
end if

set rs2=server.createobject("adodb.recordset")
sql2="select * from users where Password='"&password2&"' and truename='"&truename2&"'"
rs2.open sql2,conn,1,1
if trim(rs("truename"))=trim(truename2) then
session("person2")=trim(rs("truename"))
end if

set rs3=server.createobject("adodb.recordset")
sql3="select * from users where Password='"&password3&"' and truename='"&truename3&"'"
rs3.open sql3,conn,1,1
if trim(rs("truename"))=trim(truename3) then
session("person3")=trim(rs("truename"))
end if

set rs4=server.createobject("adodb.recordset")
sql4="select * from users where Password='"&password4&"' and truename='"&truename4&"'"
rs4.open sql4,conn,1,1
if trim(rs("truename"))=trim(truename4) then
session("person4")=trim(rs("truename"))
end if

set rs5=server.createobject("adodb.recordset")
sql5="select * from djjbantime where (id is null)"
rs5.open sql5,conn,1,3
rs5.addnew
dim mtime
mtime=now()
rs5("truename1")=session("person1")
rs5("truename2")=session("person2")
rs5("truename3")=session("person3")
rs5("truename4")=session("person4")
rs5("endtime")=cdate(mtime)
rs5.update
rs.close
rs2.close
rs3.close
rs4.close
rs5.close
set rs=nothing
set rs2=nothing
set rs3=nothing
set rs4=nothing
set rs5=nothing
conn.close
set conn=nothing
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>校验</title>
</head>

<body>
<div align="center"><center>
<br><br>
<table width="50%" border="1" cellpadding="0" cellspacing="0" bordercolor="#999999">
<tr>
<td width="100%" bgcolor="#999999" height="20"><p align="center"><font color="#FFFFFF"><b>
交接班成功</b></font></td>
</tr>
</table>
</center></div>
</body>
</html>

但是不知道为什么 只能记录下第一个交接班的人
是不是在一个页面里
set rs=server.createobject("adodb.recordset")
sql="select * from users where Password='"&password1&"' and truename='"&truename1&"'"
rs.open sql,conn,1,1
if trim(rs("truename"))=trim(truename1) then
session("person1")=trim(rs("truename"))
end if
之后
就不能
set rs2=server.createobject("adodb.recordset")
sql2="select * from users where Password='"&password2&"' and truename='"&truename2&"'"
rs2.open sql2,conn,1,1
if trim(rs("truename"))=trim(truename2) then
session("person2")=trim(rs("truename"))
end if
??????????????

谢谢各位帮忙啊!
回复 点赞
gimmyfox 2005年03月24日
唉 我承认我是菜鸟。。。。
回复 点赞
cncca 2005年03月24日
呵呵.根据你的程序,一个论坛那么多人,是不是也要很你一样的写法呢?
参考一下,好的论坛同时在线千人啊!
回复 点赞
fluxayxxx 2005年03月23日
思路都没理好?就写代码了吧
回复 点赞
蒋健华 2005年03月23日
四个人同时输入密码页面?

肯定是一个人先注销(离开岗位) 然后一个人再登录啊 哪有四个人的登录同时处理的啊?

你需求了解了吗?
回复 点赞
gimmyfox 2005年03月23日
回 myvicy:
老大 当然要自己想了
在这里提出来也只是为了获得一点提示罢了


这里是验证四个交接班人员的帐号和密码
最后还要到另一个表中记录下交接班的人员名字和时间
回复 点赞
gimmyfox 2005年03月23日
最多四个人一起嘛
大家通过网页交代清楚了今天的工作内容
然后一起通过交接班签字流程
我设计的思路是输入一个人的帐号密码的时候
就遍历一次人员表 验证帐号密码是否正确
如果正确就把他的名字和当时的时间记录到另外一个表中
这样有几个人交接班 就记录几个人的信息
回复 点赞
街头小贩 2005年03月22日
设计错误!就是逻辑上最大的错误!
回复 点赞
lookatliu 2005年03月22日
把sql文改一下吧
"select * from user where (truename='" & truename1 & "' and jiaojie='" & password1 & "') or (truename='" & truename2 & "' and jiaojie='" & password2 & "') or (truename='" & truename3 & "' and jiaojie='" & password3 & "') or (truename='" & truename4 & "' and jiaojie='" & password4 & "'"
你的程序逻辑还没看明白,最后是不是要再到另一个表里添加记录阿???
回复 点赞
myvicy 2005年03月22日
是你自己为什么不肯动脑筋呢?

今天有人说:有的人是饭做好了,还想有人给喂哦,你不是吧,呵呵~!
回复 点赞
lonelydreamsym 2005年03月22日
好乱
回复 点赞
gimmyfox 2005年03月22日
看出问题就拜托给点主意呀~
不是说个有错就想拿分吧、、、
回复 点赞
redstorm11 2005年03月22日
回复 点赞
mymyal123 2005年03月22日
太长
回复 点赞
fashchina 2005年03月22日
UP
回复 点赞
rainxiang 2005年03月22日
前面的人都说了.......
回复 点赞
everywhen 2005年03月22日
逻辑上有问题,代码这么长,看了累人
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告