0
<html>
<body>
  <form action="" method="GET">
  Name: <input type="text" name="name" />
  Age: <input type="text" name="age" />
  <input type="submit" />
  </form> 
</body>
</html>
<?php
  if( $_GET["name"] || $_GET["age"] )
  {
     echo "Welcome ". $_GET['name']. "<br />";
     echo "You are ". $_GET['age']. " years old.";
  }
?>

问题:

当我在浏览器中打开上面的脚本时,它显示:注意:Undefined index: name in D:\wamp\www\oop\test3.php on line 13, 我知道是不是因为表单还没有提交,所以$_GET["name"]不存在,但是如何解决这个问题?

4

4 回答 4

1

只需设置提交按钮的名称,并用于isset()检查表单是否已提交。

<html>
    <body>
      <form action="" method="GET">
          Name: <input type="text" name="name" />
          Age: <input type="text" name="age" />
          <input type="submit" name="submit" />
      </form> 
    </body>
</html>

<?php
    if( isset($_GET['submit']) )
    {
        echo "Welcome ". $_GET['name']. "<br />";
        echo "You are ". $_GET['age']. " years old.";
    }
?>
于 2013-07-20T03:02:01.620 回答
1

下面的示例将检查两个字段是否都已填写。

如果其中一个未填写,则会出现错误消息。

如果两者都填写,那么用户将看到:

欢迎 Bob // 假设该人的名字是字段中的“Bob”。
你已经 30 岁了。// 假设该人在字段中输入了“30”。

否则,它将回显:

填写所有字段。

这是下面的示例:

<html>
    <body>
      <form action="" method="GET">
          Name: <input type="text" name="name" />
          Age: <input type="text" name="age" />
          <input type="submit" name="submit" />
      </form> 
    </body>
</html>

<?php


if($_GET['name'] && $_GET['age'])

    {
        echo "Welcome ". $_GET['name']. "<br />";
        echo "You are ". $_GET['age']. " years old.";
    }

if(!$_GET['name'] || !$_GET['age'])

    {

        echo "Fill in all fields";

    }

?>

我已经使用了逻辑运算符&&||逻辑运算符进行验证。

有关更多信息,请参阅 PHP 手册:http: //php.net/manual/en/language.operators.logical.php

于 2013-07-20T03:50:30.973 回答
0

您可以测试您的特定_GET变量是否存在。例如:

<?php
if ( isset ( $_GET["name"] ) ) {
    echo "Welcome ". $_GET['name']. "<br />";          
}
?>
于 2013-07-20T03:02:22.443 回答
-1

尝试:

<form action="" method="GET">
Name: <input type="text" name="name" id="name" />
Age: <input type="text" name="age" id="age" />
<input type="submit" />
</form>
于 2013-07-20T03:01:17.957 回答