PHP $ _POST不起作用? [重复]

问题描述 投票:8回答:11

我有最简单的形式,我想做的就是回显文本框中写的任何内容。

HTML:

<form action="" method="post">
  <input type="text" name="firstname">
  <input type="submit" name="submit" value="Submit">
</form>

PHP:

if(isset($_POST['submit'])){
  $test = $_POST['firstname'];
  echo $test;
}

问题是它不能在我的服务器上运行(它可以在另一台服务器上运行)。有人知道什么地方可能出问题吗?服务器上还有其他形式,可以正常工作。

php html forms post
11个回答
20
投票
今晚我有类似的事情让我发疯。提交表单给了我$ _REQUEST中的值,但没有给我$ _POST中的值。

最终,我注意到萤火虫的网络标签上实际上有两个请求正在处理;首先是带有301响应的POST,然后是带有200响应的GET。

听起来好像大多数人都认为是与interweb有关,这与mod_rewrite有关,导致POST请求重定向并因此更改为GET。

在我的情况下,这不是因为mod_rewrite而引起的,这要简单得多...我的POST URL还包含一个GET查询字符串,该字符串以不带斜杠的形式开始。这是导致Apache重定向的原因。

发现差异...

差:http://blah.de.blah/my/path?key=value&otherkey=othervalue好:http://blah.de.blah/my/path/?key=value&otherkey=othervalue

最下面的一个不会引起重定向,而是给我$ _POST!


-1
投票
    html文件和php文件都应驻留在c:\ apache2的htdocs文件夹中(如果使用apache Web服务器)。

-3
投票
出于测试原因,请尝试获取代替

20
投票
您可以做的几件事:

    请确保表单上的“操作”属性指向正确的目的地。
  1. 尝试使用$ _REQUEST []而不是$ _POST,看看是否有任何更改。
  2. [可选]尝试同时包含“名称”和“ id”属性,例如

    <input type="text" name="firstname" id="firstname">

  3. 如果您在Linux环境中,请检查您是否同时拥有对该文件的读/写权限。

此外,此link也可能有帮助。

编辑:

您也可以替代

<code>if(isset($_POST['submit'])){</code>

带有此:

<code>if($_SERVER['REQUEST_METHOD'] == "POST"){ </code>

这始终是检查是否已提交表单的最佳方法

6
投票
转储全局变量以查找页面范围内的内容:

var_dump($GLOBALS);

这将告诉您有关页面数据的“内容”和“位置”。

5
投票
不是使用$ _POST,而是使用$ _REQUEST:

HTML:

<form action="" method="post"> <input type="text" name="firstname"> <input type="submit" name="submit" value="Submit"> </form>

PHP:

if(isset($_REQUEST['submit'])){ $test = $_REQUEST['firstname']; echo $test; }


5
投票
我也有这个问题。错误是在htaccess中。如果您有影响操作网址的重写规则,则将无法读取POST变量。

要解决此添加问题,必须在开始时将此规则添加到htaccess中,以免重写URL:

RewriteRule ^ my_action.php-[PT]


1
投票
您检查过php.ini吗?一旦将post_max_size设置为与upload_max_filesize相同,就破坏了post方法。

我认为post_max_size必须小于upload_max_filesize。在RHEL 6.0中使用PHP 5.3.3进行了测试]

仅供参考:$_POST in php 5.3.5 does not workPHP POST not working


1
投票

尝试一下


0
投票
您的代码没有错。问题在这里不可见。

0
投票
尝试做var_dump($_GLOBALS)
© www.soinside.com 2019 - 2024. All rights reserved.