Vbscript 如何在单独的ASP文件中处理表单

Vbscript 如何在单独的ASP文件中处理表单,vbscript,asp-classic,Vbscript,Asp Classic,我有个问题 今天我在学习经典ASP,准备下一个项目。我目前是一名.NET开发人员,在该项目上使用ASP.NET不是我的客户的要求 我下面有一个登录页面脚本 Default.asp <form method="post" action="ASP/aspLogin.asp"> form code here... <input type="submit" class="Button Is_Default" value="Login"></input>

我有个问题

今天我在学习经典ASP,准备下一个项目。我目前是一名.NET开发人员,在该项目上使用ASP.NET不是我的客户的要求

我下面有一个登录页面脚本

Default.asp

<form method="post" action="ASP/aspLogin.asp">

  form code here...

  <input type="submit" class="Button Is_Default" value="Login"></input>

</form>
<%@ Language="VBScript" %>

<%
    Dim strUsername
    Dim strPassword    

    strUsername = Request.Form("txtUsername")
    strPassword = Request.Form("txtPassword")

    If strUsername <> "" And strPassword <> "" Then
        Response.Redirect("Index.asp")
    End If

%>

这里的表单代码。。。
现在,我在测试ASP/aspLogin.ASP页面中的内容如下:

ASP/aspLogin.ASP

<form method="post" action="ASP/aspLogin.asp">

  form code here...

  <input type="submit" class="Button Is_Default" value="Login"></input>

</form>
<%@ Language="VBScript" %>

<%
    Dim strUsername
    Dim strPassword    

    strUsername = Request.Form("txtUsername")
    strPassword = Request.Form("txtPassword")

    If strUsername <> "" And strPassword <> "" Then
        Response.Redirect("Index.asp")
    End If

%>

当我运行上面的脚本时,浏览器只是将我重定向到ASP/aspLogin.ASP。我希望将用户重定向到其各自的主页


我的目标是希望我的ASP/aspLogin.ASP文件处理我的表单,而不是将该过程置于Default.ASP页面之上。我能知道我是否漏掉了一些东西,还是有更多的事情要考虑去创建我需要的代码。还将感谢提供资源

如果您有用户登录和注销,那么我会使用会话变量(我相信您在.net中也遇到过),因此类似于

If strUsername <> "" And strPassword <> "" Then
    Session("Username") = strUsername
    Response.Redirect("Index.asp")
End If
如果strUsername“”和strPassword“”,则
会话(“用户名”)=strUsername
Response.Redirect(“Index.asp”)
如果结束
然后,您可以将逻辑添加到index.asp和任何其他页面,以根据会话(“用户名”)的值显示数据

这段代码演示了这个概念。显然,您需要确保用户名不重复。实际上,我建议使用数据库查询来检索users记录的主键值,该记录对应于username和password

编辑

因此,您基本上是在尝试用经典ASP模拟.net。有两件事需要记住。Classic没有代码落后,而.net Web表单只能发布到自身(对于从Classic迁移到.net的人来说,这真是令人沮丧)

也许您最好的选择是将表单页面发布到自己的页面上,并将处理代码放在Default.asp的顶部,逻辑只有在表单提交时才会触发它,即

<%@ Language="VBScript" %>

<%
    Dim strUsername
    Dim strPassword    

    strUsername = Request.Form("txtUsername")
    strPassword = Request.Form("txtPassword")

    If strUsername <> "" And strPassword <> "" Then
        'Your processing code
        Response.Redirect("Index.asp")
    End If

%>

<html>
<body>

<form method="post">

  form code here...

  <input type="submit" class="Button Is_Default" value="Login"></input>

</form>
</body></html>


问题是,我需要一个不同的ASP页面来进行处理,并重定向到正确的ASP页面,该页面目前不适用于我。过程如下:Default.asp>Click button>asp/aspLogin.asp>Index.asp。asp.NET如何与代码隐藏一起工作。它工作了!我确实使用了你上次的推荐!非常感谢你,约翰\愚蠢的问题,但我不得不问,因为您没有显示整个表单:输入框的名称属性是否设置为“txtsername”和“txtspassword”?将表单发布到另一个页面进行登录处理本身并没有什么问题。是的,它们具有这些名称属性。您所描述的内容在asp classic中应该可以正常工作,所以问题在于细节。例如,Index.asp是否在asp文件夹中?您是否绝对确定表单字段的名称正确?你有没有试过不使用
,因为浏览器可以用非标准的标记做奇怪的事情?@Martha:我会记下这个评论。我开始学习经典ASP,因为这是我下一份工作所需要的。我已经阅读了MSDN中推荐的一些文件结构。我也会从那里开始。。。再次感谢!