【问题标题】:HTML form is not sending $_POST valuesHTML 表单未发送 $_POST 值
【发布时间】:2013-02-11 20:37:29
【问题描述】:

我正在尝试在 PHP 中创建表单创建器。这是其中一个非常愚蠢的“需要再看看”的问题。我知道这个表格应该可以工作,但它根本没有发送任何 $_POST 值。这是代码。

<form method="post" action="http://projects.zesty-designs.co.uk/orderform" class="generatedform">
<label>Ebay Username</label><br />
<input type="text" name="ebay_username" value="" /><br />
<label>Email Address</label><br />
<input type="text" name="email_address" value="" /><br />
<label>Full Name</label><br />
<input type="text" name="full_name" value="" /><br />
<input type="submit" value="Submit" /><input type="reset" value="Start Again" />
</form>

如果有人想尝试,这里是实时链接。 http://projects.zesty-designs.co.uk/orderform.

【问题讨论】:

  • 该 html 代码没有问题。它应该工作。服务器是否可能正在重定向到另一个页面,这意味着 GET 并丢失了所有发布的数据?
  • 尝试传递完整的网址,projects.zesty-designs.co.uk/orderform/index.php
  • 感谢您的快速回复。我尝试将动作更改为“./”,它似乎工作得很好。那么可能是 URL 有问题?我需要操作中的完整 URL,因为我会将此表单放在外部页面上。
  • 您不必输入完整的网址。
  • 我认为 Marc B 是对的:您的页面重定向到带有尾部斜杠的相同 URL。尝试将缺少的斜杠添加到表单的操作属性:&lt;form method="post" action="http://projects.zesty-designs.co.uk/orderform/" class="generatedform"&gt;

标签: php html forms post


【解决方案1】:

看起来大多数 cmets 都是正确的。

似乎发送信息的 URL 需要尾部斜杠 / 或对直接文件的引用。

感谢您的回复。

【讨论】:

    【解决方案2】:

    尝试在action方法中传递完整的url;

    http://projects.zesty-designs.co.uk/orderform/index.php
    

    【讨论】:

      【解决方案3】:

      您应该添加 .php 后缀,例如 action="domain.com/somepage.php"(如果它实际上是文件名)

      【讨论】:

      • 如果 OP 正在使用 URL 重写,那么根据他的规则,.php 应该或不应该出现。我们不能假设它是必需的,因为在这种情况下可能不需要它。
      • 这就是为什么我添加了“如果它实际上是一个文件名”
      【解决方案4】:

      尝试像这样escape your caracters

      http:\/\/projects.zesty-designs.co.uk\/orderform

      反斜杠字符有多种用途。首先,如果它后跟一个非字母数字字符,它将带走该字符可能具有的任何特殊含义。这种将反斜杠用作转义字符的做法适用于内部和外部字符类。

      查看链接了解更多信息:Escape sequences @ Php.net Manual

      基本上在 PHP 中,\ 字符用于回显标志或转义字符

      【讨论】:

        【解决方案5】:

        我在使用经典 asp 时遇到了完全相同的问题。 我将 IIS RULE REWRITE 和 web.config 设置如下:

        <rule name="arulename">
         <match url="somematch" />
         <conditions>
          <add input="{REQUEST_METHOD}" matchType="Pattern" pattern="POST" negate="false" />
         </conditions>
         <action redirectType="Temporary" type="Rewrite" url="someurl" />
        </rule>
        

        我的问题是,当我单击提交按钮时,表单没有提交。我的表单是完美的 action="http://website.extension/someshorturl" 但没有发布数据。 换句话说,一切都是正确的,但发布数据丢失或丢弃,并且没有配置或编码错误。我发现是因为我已经设置了我的服务器本身,所以该域使用 www。前缀,它正在重定向没有 www 的所有内容。先加前缀。我只需将表单更改为 action="http://www.website.extension/someshorturl" 并显示帖子数据。

        如果有人和我有同样的问题,我希望这会对他们有所帮助。

        我使用“POST DATA BEING LOST”搜索了高低,但没有得到任何帮助,直到我来到这里,这指出了我的问题。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-09-17
          • 1970-01-01
          • 2015-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多