【问题标题】:Method Post Stopped Working on Classic ASP Form方法发布停止在经典 ASP 表单上工作
【发布时间】:2015-09-25 00:56:57
【问题描述】:

我创建了一个表单,用户可以在其中注册并使用表单方法=发布。这种形式多年来一直没有问题。最近我们从 Windows Server 2003 迁移到 Windows Server 2012,没有其他任何变化。现在,在表单达到顶峰后,它不再将数据保存在表字段中。如果我将方法切换为 method=get 表单可以工作,但表单中输入的数据会成为 url 的一部分,这是不可取的。

表单示例,用户输入他们的电子邮件地址,操作后我在 MySQL 数据库中查找电子邮件地址以检查用户是否已经使用该电子邮件地址注册:

<FORM NAME="Sign_Up" ACTION="Email_Submit.asp" METHOD=POST>
<table class="form" align=center>
    <tr>
        <td class="b">
        Email: <INPUT class="texta" id=text2 name=Email>
        </td>
    </tr>
    <tr>
        <td class="b2">
            <INPUT type='submit' value=' Submit Request ' id=submit1 name=submit1>
    </tr>
</table>
</form>     

在我尝试从表单中请求信息时提交的页面上,我什么也得不到:

SQL = "select * FROM info WHERE Email = '" & Request("Email") & "'"

当我请求(“电子邮件”)时,我没有得到任何回报,因此 SQL 语句如下所示:

select * FROM info WHERE Email = '' 

任何线索为什么 method=post 会停止工作,可能是服务器上设置了不允许页面保留信息的东西吗?

【问题讨论】:

  • 你试过测试Request.Form("Email")返回什么?
  • 另外,将 type=text 添加到
  • 为什么与引用属性值不一致? table class="form" align=center&gt;...INPUT class="texta" id=text2...type='submit' id=submit1。双引号、单引号、无引号!你真的把我的强迫症放在了边缘!
  • @EdW.:你为什么不把关于防火墙的信息放在你的问题中?你喜欢让我们追雁吗?
  • 不管它“应该”允许什么,使用适当的约定比随机的怪癖更可取,并帮助人们专注于真正的潜在问题。另外,我不确定我是否了解 SSL:您是从 SSL 提交到非 SSL 还是反之亦然?我也会避免越过这些界限,因为当用户在提交数据时看到令人讨厌的潜在安全威胁警告时,他们会担心。

标签: forms post methods asp-classic


【解决方案1】:

我在服务器 2012 上遇到同样的问题

将 -request.form- 替换为 -request-

对我有用

【讨论】:

    【解决方案2】:

    使用Request.Form("Email") 获取价值。您在 POST 请求中发送数据。您可以尝试将 POST 请求更改为 GET 请求,然后您需要使用Request.QueryString("Email")

    【讨论】:

    • Request("Email") 应该可以正常工作,只需访问整个QueryStringForm 元素集合即可。问题将在其他地方。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多