<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"]
不存在,但是如何解决这个问题呢?
答案 0 :(得分: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.";
}
?>
答案 1 :(得分: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
答案 2 :(得分:0)
您可以测试您的特定_GET
变量是否存在。例如:
<?php
if ( isset ( $_GET["name"] ) ) {
echo "Welcome ". $_GET['name']. "<br />";
}
?>
答案 3 :(得分:-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>