请看下面的简单代码。
<?php
$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];
$d = $_POST['d'];
$e = $_POST['e'];
...... ?>
在html
文件中,我们只有以下字段:
<form action="file.php" method="POST">
<p>A</p> <input type="text" name="a">
<p>B</p> <input type="text" name="b">
</form>
上面的html
代码我们只有两个字段,但在php
文件中,我们有几个$_POST[]
变量和全局变量比html
代码中的字段多。现在我想知道额外的$_POST[]
变量值。
值是否为""
(空字符串)?web服务器崩溃了吗?也许我的问题很简单,但对我来说却模棱两可。
要了解任何变量的状态,请尝试var_dump:
var_dump($_POST['d']);
首先要检查的是:var_dump($_POST)
$_POST['c'];
$_POST['d'];
$_POST['e'];
空的吗?或者c,d,e
是从表单发送的隐藏变量。
如果你的表单没有发送c,d,e
,你很可能会收到Notice: Undefined index: in
如果没有,删除这些变量
$_POST['c']
,…没有设置,所以你得到一个NOTICE
。(它们的值是null
)
最好将代码更改为:
if(isset($_POST['c'])) $c=$_POST['c']; else $c='';
或
$c=isset($_POST['c'])?$_POST['c']:'';
$_POST
是一个全局变量,但它是一个数组。
当你通过POST method
提交表单时,你会得到一个有限的时间周期的post变量,因为页面改变了,所有你以前的post变量都消失了。
如果你要发布一个表单
查看所有使用
的post数据 print_r($_POST);
或
var_dump($_POST);
给出了一个人类可读的post数据数组。它会告诉你$_POST