PHP没有读取$ _POST变量

时间:2015-01-06 00:19:02

标签: php forms apache post

我在笔记本电脑上设置了一个新的AMP堆栈,所以我可以在本地做一些工作。我不是幕后Apache或PHP机制的专家,所以我有一个问题。我有一个表单收集信息并发布它由PHP文件处理。 html表单和php处理器在我的实时服务器上运行良好,但在笔记本电脑上,php脚本似乎没有看到发布的变量。

以下是我定义处理器程序的方法

<form method='POST' action='myprogram.php'>

以下是我如何填充变量

的示例
<input type='text' name='gw' size='8' value='65000'>Gross Weight

这是我提交的方式

<input type='submit' value='Submit' name='B1'>

在php中,这是我在本地定义它们的方式

$gw=$_POST[gw];

最后,这是我为每个变量得到的错误信息:

  

&#34;注意:使用未定义的常量gw - 假设&#39; gw&#39;在第21行和第34行的C:\ Apache \ htdocs \ myprogram \ myprogram.php中;

由于代码在我的apache 2.2服务器上完美运行,而不是我刚刚安装的2.4,我很确定问题出在我的apache或php配置中。我看到了我能想到的所有地方,并且无法找到一个开启&#34;开启的指令&#34;此功能。我非常希望能在这一方面得到一些帮助,谢谢你。

吉姆

2 个答案:

答案 0 :(得分:3)

$ _ POST值存储在associative array中,也就是说,值由某种类型的字符串&#39;键&#39;编制索引。要访问元素,必须使用相应的字符串:

$value = $_POST['gw']; // a string using single quotes
$key = 'gw';
$value = $_POST[$key]; // this is also acceptable

在您的代码中,您没有在字符串周围添加引号,因此PHP将其解释为常量。

答案 1 :(得分:0)

您遗失的是$gw=$_POST['gw']周围的引号。它认为您使用的是常量gw。以下是有关此错误的具体文章:Why is $foo[bar] wrong?

对于没有产生错误的更好的代码,我建议使用:

$gw = ( empty($_POST['gw']) ) ? $_POST['gw'] : false;

这是PHP的三元运营商。在将代码赋值给变量之前,此代码会检查实际上是否存在值。

相关问题