PHP $ _POST不起作用

时间:2011-12-10 14:02:57

标签: php iis post get

我正在使用PHP工作的Web应用程序。 发生了一件我从未见过的错事。 $_GET运行良好,但$_POST无效。想象一下下面的表格:

<form action="process.php" method="post">
   <input type="text" name="title" />
   <input type="submit" value="send" />
</form>

如您所见,我使用了post作为表单的方法属性。在这种情况下,下面的代码将返回错误:

<?php
$sentData = $_POST['title'];
echo($sentData);    
?>

错误讯息:

PHP Notice:  Undefined index: title in ...

但是如果我在PHP脚本中使用$_GET并在html表单代码中使用get,那么一切都会正常运行。

有一些更奇怪的事情。

  1. 我使用POST时只有一个表单没有返回错误,其他表单返回错误。
  2. 当我在本地运行此应用程序(使用Xampp - Apache 2.2)时,一切正常,没有任何错误,但每当我运行应用程序和远程服务器(IIS 7)时,我都会遇到这些错误和问题。

3 个答案:

答案 0 :(得分:1)

所以我会用几种不同的方式来解决这个问题:

  1. @Dynamicus是正确的,这只是一个'通知'并且不是致命错误(至少你没有在问题中这么说),所以这可能是你的.ini配置或配置定义的差异抑制错误,如'error_reporting(0);'
  2. 您可能希望在本地和服务器上备份当前正在运行的.ini,并将正在运行的.ini复制到您的服务器并重新启动Apache,看看是否会产生影响。
  3. 为什么索引数组(即$ _POST)产生警告有点奇怪,但做一个“print_r($ _ POST);”或者“var_dump($ _ POST);”查看内容或是否有任何内容。
  4. 如果你正在使用框架或做路由的东西,可以考虑一下。

    我希望这会有所帮助,错误报告的设置还有更多[此处] http://php.net/manual/en/function.error-reporting.php

答案 1 :(得分:0)

您的input元素需要name和value属性。

答案 2 :(得分:0)

最后,我更改了我的文件所在的服务器。我在另一台服务器(相同的操作系统)上尝试过它们,一切正常。 我无法得到原因......这是我第一次收到这个未知错误。 不过,谢谢大家的建议和意见。