日期:2014-05-17  浏览次数:20524 次

php中_POST获取值, 不存在时,怎么验证
<html>
<head>
<title>测试php</title>
</head>
<body>
<form action="test.php" method="post">
<input type="text" name="name" />
<br />
<input type="submit" value="提交" />
</form>
</body>
</html>
<?php 
$name = "";
if(!empty($_POST["name"]))
{
  $name = $_POST["name"];
}
print $name;
?> 

运行时报错, 开始就没有$_POST["name"]值, 怎么验证有没有$_POST["name"]值.
如果有name值提交就打印值, 没得就打印""

------解决方案--------------------
报什么错? 你的也行。用isset()也行。
------解决方案--------------------
test.php改成:
<?php 

if (isset($_POST)) {
$name = "";
if(!empty($_POST["name"]))
{
$name = $_POST["name"];
}
print $name;
} else {
echo "$_POST not Set!";
}

?>
------解决方案--------------------
很好奇,这段代码回报什么错?
------解决方案--------------------
错误级别打开过高了吧,关闭错误提示就不会报了。这个在生产环境下可用,开发还是严谨一些,养成验证的好习惯比较好。

 推荐用楼上说的isset()函数验证一下值是否存在。

比如想知道是否存在name值的提交,可以这样:

PHP code
if(isset($_POST['name'])||!empty($_POST['name'])
{
  echo $_POST['name'];//值存在且不为空打印出来;
}else{
  echo " ";//值不存在或为空,打印空"";
}