<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"]
不存在,但是如何解决这个问题?
只需设置提交按钮的名称,并使用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.";
}
?>
下面的示例
将检查两个字段是否都已填充。
如果一个或另一个未填充,则会出现一条错误消息。
如果两者都已填充,则用户将看到:
欢迎鲍勃//假设此人的名字是字段中的"鲍勃"。
你今年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
您可以测试您的特定_GET
变量是否存在。例如:
<?php
if ( isset ( $_GET["name"] ) ) {
echo "Welcome ". $_GET['name']. "<br />";
}
?>
尝试:
<form action="" method="GET">
Name: <input type="text" name="name" id="name" />
Age: <input type="text" name="age" id="age" />
<input type="submit" />
</form>