我在笔记本电脑上设置了一个新的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;此功能。我非常希望能在这一方面得到一些帮助,谢谢你。
吉姆
答案 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的三元运营商。在将代码赋值给变量之前,此代码会检查实际上是否存在值。