function checkInputs()
{
$fname = $_POST["fname"];
$lname = $_POST['lname'];
$email = $_POST['email'];
...
}
<form method = 'POST' action = 'index.php'>
First Name:<input type = 'text' name = 'fname'>
Last Name:<input type = 'text'name = 'lname'>
Email:<input type = 'text' name = 'email'>
</form>
在单击按钮之前不会调用该函数。
无论我在页面加载后尝试放置php标记,无论它是否仍然产生错误'Undefined index:... at Line
答案 0 :(得分:1)
在尝试使用该值之前,您需要先检查该值是否存在
如果有人将fname字段留空并提交了您的表单,那么它将不会在$ _POST var中设置
$fname = isset($_POST["fname"]) ? $_POST["fname"] : NULL;
if ($fname == NULL) {
echo "First name is required";
}
答案 1 :(得分:0)
如果您没有在适当的方法检查中包装该代码,则无论表单是否已提交,每次加载页面时都会运行该代码,例如。
<?
function checkInputs() { blah blah blah }
checkInputs();
?>
<form ...>
...
</form>
当表单在提交时加载 AND 时,将执行checkInput函数。当表单首次通过get加载时,$ _POST将为空(因为页面是通过GET调用请求的),并且您将获得这些错误。
但如果你有:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
checkInputs();
}
然后只有在通过POST请求调用脚本时才会运行检查功能。