我编写了以下php代码来从URL查询字符串中捕获名称和电子邮件。
<?php
$name = "rkb"; // Default name
$email= "rkb@example.com"; // Default email
if ($_GET['name']) {
$name = test_input($_GET['name']);
}
if ($_GET['email']) {
$email = test_input($_GET['email']);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
我在URL中传递变量name
和email
时效果很好。但是当我加载这个没有查询字符串的页面时,我得到了这两个错误
Notice: Undefined index: name in path\to\folder\index.php on line 4
Notice: Undefined index: email in path\to\folder\index.php on line 7
我想让PHP表现得如此$name
和$email
在缺少查询字符串时获取默认值。
答案 0 :(得分:4)
答案 1 :(得分:3)
使用empty()
。它测试变量是否已设置以及是否包含非空值。
if (!empty($_GET['name'])) {
答案 2 :(得分:2)
使用if (isset($_GET['name']))
代替if ($_GET['name'])
答案 3 :(得分:2)
您可以使用isset()
来确定变量是否已设置且不为NULL。另外,请检查empty()
if (isset($_GET['name']) && !empty($_GET['name'])) {
$name = test_input($_GET['name']);
}
答案 4 :(得分:1)
使用isset函数检查是否设置了$ _GET。像这样改变你的代码。
<?php
$name = "rkb"; // Default name
$email= "rkb@example.com"; // Default email
if (isset($_GET['name'])) {
$name = test_input($_GET['name']);
}
if (isset($_GET['email'])) {
$email = test_input($_GET['email']);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>