<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值提交就打印值, 没得就打印""

解决方案 »

  1.   

    报什么错? 你的也行。用isset()也行。
      

  2.   

    test.php改成:
    <?php if (isset($_POST)) {
        $name = "";
        if(!empty($_POST["name"]))
        {
            $name = $_POST["name"];
        }
        print $name;
    } else {
        echo "$_POST not Set!";
    }?>  
      

  3.   

    错误级别打开过高了吧,关闭错误提示就不会报了。这个在生产环境下可用,开发还是严谨一些,养成验证的好习惯比较好。 推荐用楼上说的isset()函数验证一下值是否存在。比如想知道是否存在name值的提交,可以这样:if(isset($_POST['name'])||!empty($_POST['name'])
    {
      echo $_POST['name'];//值存在且不为空打印出来;
    }else{
      echo " ";//值不存在或为空,打印空"";
    }
      

  4.   

    开始我写成了
    <?php 
    $name = "";
    if(!isset($_POST["name"]))
    {
    $name = $_POST["name"];
    }
    print $name;
    ?> 
    所以一直报错, 我发帖子时又改成了!empty($_POST["name"])