【问题标题】:PHP Script Not Receiving Post DataPHP 脚本未接收到发布数据
【发布时间】:2011-09-06 22:34:55
【问题描述】:

我有一个为我处理表单的 php 脚本。然而,有些事情很奇怪(或者我只是一个比我想象的更大的菜鸟)。

脚本顶部的以下代码:

<?php

// Get Post Data to Insert into Database

print('<pre>');
print_r($_POST);
print('</pre>');

$vehicleID = $_Post['list3'];
echo "Variable vehicleID is: {$vehicleID}";
echo "Post variable list3 is: {$_Post['list3']};

?>

当表单提交并被脚本截取表单数据时,会导致以下“打印输出”:

Array
(
    [list1] => 7
    [list2] => 3923
    [list3] => 20745
    [Submit] => Submit
)
Variable vehicleID is: Post variable list3 is:

我只包含了 post 数组打印输出,以查看是否实际收到了 post 数据 - 显然,确实如此。那么,为什么不传递给我的变量以便我可以使用它呢?

我知道我只是一个 PHP 黑客,但我觉得我一定会失去它。

【问题讨论】:

  • 对任何超全局数组使用$_ALLCAPS[...]REQUESTPOSTGETSERVER 等)。
  • 使用不存在的变量时您没有收到错误吗? ($_Post) 在$vehicleID = $_Post['list3']; 行中
  • 不要试图告诉我this 不是你! (我意识到帐户不一样,但名称和 exact 错误是......)

标签: php arrays forms post


【解决方案1】:

您的代码有$_Post,应该是$_POST

【讨论】:

    【解决方案2】:

    尝试将代码下部的$_Post 更改为$_POST;这可能是导致问题的原因。

    【讨论】:

      【解决方案3】:

      the HTTP POST data superglobal array 的手册页将其描述为$_POST

      还有,elsewhere

      基础知识

      PHP 中的变量由一个美元符号后跟变量名表示。变量名区分大小写。

      因此,您对$_Post 的使用实际上应该是$_POST

      您应该修复您的error_reporting 设置,因为您应该看到E_NOTICE 关于使用不存在的变量。

      【讨论】:

      • 我收到的所有答案都建议对我的代码进行相同的修改 - 显然(并且所有这些都解决了我的问题 - 男孩,我觉得自己像个白痴没有注意到它)。无论如何,这是最好的答案,以便其他没有意识到变量区分大小写的人会看到它们是。我确实知道这一点,但由于某种原因,我认为 POST 不需要全部大写。
      猜你喜欢
      • 2016-10-06
      • 1970-01-01
      • 2013-02-14
      • 2016-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-27
      相关资源
      最近更新 更多