经典的asp请求表单和变量

时间:2012-09-25 02:42:33

标签: forms variables asp-classic request.form

我需要一些帮助。我有这个简单的用户名/密码脚本来启用登录页面。它基本上是一个要求用户名/密码并与代码中的一些信息进行比较的表单。

If Request.Form("FormUsername") = "username" AND Request.Form("FormPassword") = "password" Then

我想要做的是比较一些变量的用户/传递信息,比如有一个带变量的第二个文件:

<%
'Username Variables
Dim PCUser, PCPass

PCUser = "username"
PCPass = "password"
%>

然后将文件包含在登录页面中:

<!--#include file="Users.inc"-->

然后能够读取request.form上的变量:

If Request.Form("FormUsername") = "& PCUser &" AND Request.Form("FormPassword") = "& PCPass &" Then

这就是我到目前为止所尝试的并且不起作用:( 任何人都可以帮我弄明白为什么???

如果我在页面末尾做了一个response.write,它会显示变量值:

<%
Response.Write("user= " & PCUser & "<br />")
Response.Write("pass= " & PCPass & "<br />")
%>

提前致谢

PC

2 个答案:

答案 0 :(得分:2)

If Request.Form("FormUsername") = PCUser 
      AND Request.Form("FormPassword") = PCPass Then

第二次尝试:

response.write "FormUsername: " & Request.Form("FormUsername")
response.write "PCUser: " & PCUser
response.write "Equals: " & (Request.Form("FormUsername") = PCUser)

在主页面和包含文件中使用上述内容进行检查。

答案 1 :(得分:0)

更简单的方法可能是将用户名和密码放在应用程序变量中,位于站点根目录中的global.asa中:

<script language=vbscript runat=server>
    SUB Application_OnStart
            Application.contents("username") = "username"
            Application.contents("password") = "password" 
    END SUB
</script>

这使您的用户名和密码在整个应用程序中可用。在您的页面中,您可以像这样检查它(不需要包含):

If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
    ...
End if

当然,从那里开始的方法是创建一个登录页面,一旦用户使用正确的用户名和密码登录,就设置一个会话变量(每个用户),然后检查会话变量,以查看是否有人登录:

GLOBAL.ASA:

<script language=vbscript runat=server>
    ' run when the application is started for the first time or re-started
    SUB Application_OnStart
            Application.contents("username") = "username"
            Application.contents("password") = "password" 
    END SUB

    ' run for each user when he or she first visits the site
    SUB Session_OnStart 
            Session.Contents("loggedIn") = False
    END SUB
</script>

当用户成功登录时,您的登录页面可以将会话设置为TRUE:

If Request.Form("FormUsername") = Application.contents("username") AND Request.Form("FormPassword") = Application.contents("password") Then
    Session("loggedIn") = True
End if

在您要保护的每个页面的顶部,您可以执行以下操作:

If NOT Session("loggedIn") Then 
    Response.redirect("/login.asp")    ' redirect to your login page
End If

最后一段代码可以放在一个包含文件中,并添加到您想要保护的所有页面的顶部。

请注意,这是一个非常基本的安全系统,代码未经测试。

希望这有帮助