【问题标题】:PHP - simple POST not working but GET doesPHP - 简单的 POST 不起作用,但 GET 可以
【发布时间】:2015-12-02 19:11:01
【问题描述】:

我在一个页面上有两个表单 - 一个 POST 到同一个文件,另一个 POST 到另一个文件。成功提交后的第一个表单会 POST 到页面,并且关联的 VarDump 会给出预期值,但是,第二个脚本无法成功 POST 到下一页。

表格相同:
表格 1

<form action="" method="POST">
    <input type="text" value="stuff" name="test" />
    <input type="submit" value="see test" name="testsubmit" />
</form>

表格 2

<form name="stuff" action="../artwork" method="post">
    <input type="text" value="stuff" name="test" />
    <input type="submit" value="next"  name="submit" />
</form>

使用 GET 时在另一端接收数据;只有 POST 不起作用。 在我被问到之前 - 其他 POST 表单在几乎相同的条件下在服务器上工作,只是这个表单不工作。

【问题讨论】:

  • 您的页面真的是../artwork 还是irt 有文件扩展名?查看错误日志。
  • 把你的代码放在后端php服务器上。
  • 真的是.../artwork,另外一个脚本处理页面,去掉.php扩展名。
  • 您在错误日志中看到了什么?
  • 什么都没有 - 没有错误,只是一个空的 POST 值。

标签: php forms post


【解决方案1】:

action="../artwork" 您缺少文件扩展名。应该是artifact.php,还要检查上层文件夹中是否有artifact.php 文件。

【讨论】:

  • 文件扩展名不是严格要求的,也不一定是问题。
  • 是的,你是对的,这不是必需的。但是,如果您考虑问题的性质,您认为在他的情况下会写一个 RewriteCond 吗?
  • OP 在您回答前约 40 分钟说“这真的是……/艺术品,另一个脚本处理页面并删除 .php 扩展名”。
  • 是的,“删除”扩展程序的脚本正在运行,其他带有 POST 数据的页面运行良好 - 只是不是这个!
【解决方案2】:

尝试使用大写的method 值。

&lt;form name="stuff" action="../artwork" method="POST"&gt;

【讨论】:

    【解决方案3】:

    这实际上是一个非常奇怪的服务器问题,其中 POST 以某种方式被“阻止”。我们不知道它是如何在 Apache 中被允许并在 PHP 中启用的,我们认为它与页面的加载方式有关(作为对位于完全不同目录中的某些页面的 POST 工作)。

    解决方案:使用会话和 GET。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 2018-02-06
      • 2021-02-06
      • 2014-08-01
      • 2011-03-15
      相关资源
      最近更新 更多