首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • asp(dw+access)登陆问题 [已结帖,结帖人:chinalr]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-19 22:13:55 楼主
    小弟用如下代码实现用户登陆,为什么显示“网页地址不正确,因此您要寻找的网页无法显示。”

    代码如下:

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

    <%
    dim siteconn,siters,siteexec
    set siteconn =server.createobject("adodb.connection")
    set siters=server.createobject("adodb.recordset")
    siteconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("sitedata/sitedata.mdb")
    siteexec="select * from rxadmin"
    siters.open siteexec,siteconn,1,1
    %>
    <%
    session("webid")=request.Form("userid")
    session("webpw")=request.Form("userpw")
    %>

    <%
    if trim(request.Form("userid")) <>"" or trim(request.Form("userpw")) <>"" then
    siters.movefirst
    do
    If session("webid")=siters("rxid") and session("webpw")=siters("rxpw") Then
    Response.Redirect("loginok.asp")
    else
    siters.movenext
    end if
    loop while not siters.eof
    response.Redirect("loginbad.asp")
    end if
    %>

    <title>用户登陆 </title>
    <style type="text/css">
    <!--
    .STYLE1 {
    font-size: 18px
    }
    .STYLE4 {font-size: 14px}
    body {
    margin-top: 200px;
    }
    -->
    </style>
    </head>

    <body>
    <form id="form1" name="form1" method="post" action="">
      <table width="251" border="0" align="center">
        <tr align="center">
          <td colspan="2" bgcolor="#0066FF"> <p class="STYLE1">用户登陆 </p>      </td>
        </tr>
        <tr>
          <td width="66"> <span class="STYLE4">用户名: </span> </td>
          <td width="175"> <span class="STYLE4">
            <label>
            <input name="userid" type="text" id="userid" />
            </label>
          </span> </td>
        </tr>
        <tr>
          <td> <span class="STYLE4">密 码: </span> </td>
          <td> <span class="STYLE4">
            <label>
            <input name="userpw" type="password" id="userpw" />
            <br />
            </label>
          </span> </td>
        </tr>
        <tr align="center">
          <td colspan="2"> <span class="STYLE4">
            <label>
            <input type="submit" name="cmdok" id="cmdok" value="登陆" />
        
    <input type="reset" name="cmdcancel" id="cmdcancel" value="取消" />
            </label>
          </span> </td>
        </tr>
      </table>
      </form>
    </body>
    </html>
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zl_c
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:23:551楼 得分:0
    这段代码思路有问题。
    HTML code
    <% Dim UserName Dim PassWord Dim Sql,Rs UserName = Request.Form("userid") PassWord = Request.Form("userpw") Sql = "select * from rxadmin where username='" & UserName & "' and password='" & PassWord & "'" '是否存在这样的记录 Set Rs = conn.Execute(Sql) If Rs.Eof Then '登录失败 Else '登录成功 End If %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinmo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      6

      2

    发表于:2008-08-19 22:27:112楼 得分:0
    你这代码…………汗!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:35:123楼 得分:0
    小弟没明白zl_c 的意思,另外,希望chinmo给个完整的登陆实例,谢谢!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 22:53:144楼 得分:0
    补充一下,上面代码在我本机上可以正常,但是上传到空间上就不行了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinmo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      6

      2

    发表于:2008-08-19 22:56:315楼 得分:30
    HTML code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>用户登陆 </title> <style type="text/css"> <!-- .STYLE1 { font-size: 18px } .STYLE4 {font-size: 14px} body { margin-top: 200px; } --> </style> </head> <body> <%if trim(request.Form("userid")) <>"" and trim(request.Form("userpw")) <>"" then dim siteconn,siters,siteexec set siteconn =server.createobject("adodb.connection") set siters=server.createobject("adodb.recordset") siteconn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("sitedata/sitedata.mdb") siteexec="select * from rxadmin where siters("rxid")='"&trim(request.Form("userid"))&"'" siters.open siteexec,siteconn,1,1 %> <% if not siters.bof then If siters("rxpw")=trim(request.Form("userpw")) Then Response.Redirect("loginok.asp") else response.Redirect("loginbad.asp") '密码不正确返回重新登陆 end if else response.Redirect("loginbad.asp") '用户名不正确返回重新登陆 end if else %> <form id="form1" name="form1" method="post" action=""> <table width="251" border="0" align="center"> <tr align="center"> <td colspan="2" bgcolor="#0066FF"> <p class="STYLE1">用户登陆 </p> </td> </tr> <tr> <td width="66"> <span class="STYLE4">用户名: </span> </td> <td width="175"> <span class="STYLE4"> <label> <input name="userid" type="text" id="userid" /> </label> </span> </td> </tr> <tr> <td> <span class="STYLE4">密 码: </span> </td> <td> <span class="STYLE4"> <label> <input name="userpw" type="password" id="userpw" /> <br /> </label> </span> </td> </tr> <tr align="center"> <td colspan="2"> <span class="STYLE4"> <label> <input type="submit" name="cmdok" id="cmdok" value="登陆" />   <input type="reset" name="cmdcancel" id="cmdcancel" value="取消" /> </label> </span> </td> </tr> </table> </form> <%end if %> </body> </html>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:23:276楼 得分:0
    回复chinmo
    系统执行如下语句时出错
    siteexec="select * from rxadmin where siters("rxid")='"&trim(request.Form("userid"))&"'"

    提示:

    错误类型:
    Microsoft VBScript 编译器错误 (0x800A0401)
    语句未结束
    /lossgin.asp, line 26, column 46
    siteexec="select * from rxadmin where siters("rxid")='"&trim(request.Form("userid"))&"'"
    ---------------------------------------------^

    个人觉得少了一个双引号,只是把语句改为如下语句
    siteexec="select * from rxadmin where siters("rxid")='"&trim(request.Form("userid"))&"'" &"""
    之后,还是同样出错,麻烦chinmo再看一下,谢谢!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jhwcd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:27:427楼 得分:20
    改成这样试试siteexec="select * from rxadmin where rxid='"&trim(request.Form("userid"))&"'"
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caoacaoca
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:30:598楼 得分:5
    友情帮楼主顶贴,初学ASP,嘿嘿,看看先
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zl_c
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:31:169楼 得分:30
    按你原来的代码写的:
    HTML code
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <% Dim UserId,PassWord UserId = Request.Form("userid") PassWord = Request.Form("userpw") Dim siteConn,siteRs Set siteConn = Server.CreateObject("adodb.connection") siteConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("sitedata/sitedata.mdb") Set siteRs = siteConn.Execute("select * from rxadmin where rxid='" & UserId & "' and rxpw='" & PassWord & "'") If siteRs.Eof Then '如果没有 用户名是UserId且密码是PassWord 的记录 登录失败 Response.Redirect("loginbad.asp") '登录失败 重新登录 Response.End Else Response.Redirect("loginok.asp") '登录成功 Session("webid") = UserId '用Session保存登录状态 Session("webpw") = PassWord End If %> <title>用户登陆 </title> <style type="text/css"> <!-- .STYLE1 { font-size: 18px } .STYLE4 {font-size: 14px} body { margin-top: 200px; } --> </style> </head> <body> <form id="form1" name="form1" method="post" action=""> <table width="251" border="0" align="center"> <tr align="center"> <td colspan="2" bgcolor="#0066FF"> <p class="STYLE1">用户登陆 </p> </td> </tr> <tr> <td width="66"> <span class="STYLE4">用户名: </span> </td> <td width="175"> <span class="STYLE4"> <label> <input name="userid" type="text" id="userid" /> </label> </span> </td> </tr> <tr> <td> <span class="STYLE4">密 码: </span> </td> <td> <span class="STYLE4"> <label> <input name="userpw" type="password" id="userpw" /> <br /> </label> </span> </td> </tr> <tr align="center"> <td colspan="2"> <span class="STYLE4"> <label> <input type="submit" name="cmdok" id="cmdok" value="登陆" />   <input type="reset" name="cmdcancel" id="cmdcancel" value="取消" /> </label> </span> </td> </tr> </table> </form> </body> </html>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tomatofly
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 23:37:3810楼 得分:15
    楼上的正解!
    以下是需要纠正的错误代码,请不要使用do循环!
    VB code
    f trim(request.Form("userid")) <>"" or trim(request.Form("userpw")) <>"" then siters.movefirst do If session("webid")=siters("rxid") and session("webpw")=siters("rxpw") Then Response.Redirect("loginok.asp") else siters.movenext end if loop while not siters.eof response.Redirect("loginbad.asp") end if

    如果一个登陆就用了DO循环,那么你让全世界的服务器怎么有勇气活下去啊?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinmo
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

      6

      2

    发表于:2008-08-19 23:44:0411楼 得分:0
    语句未结束
    /lossgin.asp, line 26, column 46
    siteexec="select * from rxadmin where siters("rxid")='"&trim(request.Form("userid"))&"'"

    呵呵,是我的疏忽,不好意思,复制你的代码没去掉
    应该是

    siteexec="select * from rxadmin where rxid='"&trim(request.Form("userid"))&"'"
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 00:32:3412楼 得分:0
    真没想到今天一发贴,就有这么多的兄弟来帮忙,因为白天要上班,只能晚上抽时间学ASP,今天这个问题困惑小弟好几天了,小弟这里谢谢zl_c、谢谢chinmo、谢谢其他的众多兄弟,代码应该是没问题了,只是又出来了一个问题,现在网页一打开,因为用户名和密码都是空,一下子就转到loginbad.asp页面去了,小弟在代码中加入一个if语句中可以避免这个问题,不过总感觉不好,不知道各位有其他什么方法没?,加入了if语句后的代码:
    <%
    Dim UserId,PassWord
    Dim siteConn,siteRs
    UserId = Request.Form("userid")
    PassWord = Request.Form("userpw")

    If Trim(UserId) <>"" and Trim(PassWord) <>"" then
        Set siteConn = Server.CreateObject("adodb.connection")
        siteConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("sitedata/sitedata.mdb")
        Set siteRs = siteConn.Execute("select * from rxadmin where rxid='" & UserId & "' and rxpw='" & PassWord & "'")
        If siteRs.Eof Then   
            Response.Redirect("httperrors/loginbad.asp")   
        Response.End
        Else
        Response.Redirect("webfilelist/loginok.asp")   
        Session("webid") = UserId           
        Session("webpw") = PassWord
        End If
    End if
    %>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • chinalr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 00:38:4913楼 得分:0
    补充:
    加入if语句后,在本机上可以实现,但是传到空间上就不行了,系统提示:

    网页无法显示
    网页地址不正确,因此您要寻找的网页无法显示。

    不管有没有用户名和密码,也不管用户名和密码是否正确,只要一点登陆,就出来这个,看来还得麻烦各位了。