在Classic ASP中,从一个页面提交值无法从Windows 2008 Server 64 Bit中的另一个页面上的Request.Form中获取,它会产生HTTP 500错误。但是,我能够在浏览器中查看正常的Response.Write引用文本。 我是ASP Classic的新手。
Index Page ::这是索引页面,其值将遍历到另一个页面。
<HTML>
<HEAD>
</HEAD>
<BODY>
<Form Method="POST" Action="ValidateUser.asp" Name="IndexPage" Id="IndexPage" target="ValidateUser">
<CENTER><H1><%Response.Write ("Welcome to PuneDiary..")%></H1>
<BR>
<BR>
<table>
<tr>
<td colspan="2" align="center">Login</td>
</tr>
<tr>
<td>User Name : </td><td><input type="text" name="txtuname" value="<%=txtuname%>"/></td>
</tr>
<tr>
<td>Password : </td><td><input type="password" name="txtpass" value="<%=txtpass%>"/></td>
</tr>
<tr>
<td></td>
<td align="Right">
<input type="Submit" Value="Submit"/>
</td>
</tr>
</table>
</CENTER>
</Form>
</BODY>
</HTML>
--------------------------------------------------------------------
Validate User Page :: This is the page which takes input from the Index Page.
ValidateUser.asp
<!DOCTYPE html>
<HTML>
<HEAD>
<script language="vbscript" runat="server"/>
</HEAD>
<BODY>
The Data to be displayed is:<BR>
<%
Call ValidateUser()
Public Sub ValidateUser()
Dim Uname,Pass
UName = Request.Form("txtuname")
Pass = Request.Form("txtpass")
Response.Write (UName & "<BR>")
Response.Write (Pass)
End Sub
%>
</BODY>
</HTML>
答案 0 :(得分:1)
因为您使用的是Windows 2008服务器,所以它附带了IIS 7.0及更高版本。 默认情况下,在IIS 7.0和IIS 7.5上未安装经典ASP,您需要进行必要的设置。 请通过以下链接
答案 1 :(得分:0)
您在程序结束时缺少“End Sub”。像这样使用Sub毫无意义。
你可以这样做:
Dim Uname,Pass
UName = Request.Form("txtuname")
Pass = Request.Form("txtpass")
Response.Write (UName & "<BR>")
Response.Write (Pass)
答案 2 :(得分:-1)
我认为您需要丢失<script language="vbscript" runat="server"/>
行。经典ASP中没有“runat”属性,这可能导致IIS尝试将页面加载为ASPX文件,其中VB脚本代码完全不兼容并抛出HTTP 500错误 - 这对于无论友好错误消息或向浏览器发送错误(或任何其他IIS设置,确实)都会收到500错误。
这至少是我的理论。尝试删除该行,看看会发生什么。