0
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

4

2 回答 2

1

您需要先检查该值是否存在,然后再尝试使用它

如果有人将 fname 字段留空并提交了您的表单,那么它将不会在 $_POST var 中设置

$fname = isset($_POST["fname"]) ? $_POST["fname"] : NULL;

if ($fname == NULL) {
   echo "First name is required";
}
于 2012-05-14T02:52:03.637 回答
0

如果您没有将该代码包装在适当的方法检查中,它将在每次加载页面时运行,无论是否已提交表单,例如

<?
function checkInputs() { blah blah blah }

checkInputs();
?>

<form ...>
...
</form>

将在表单加载和提交时执行您的 checkInput 函数。当表单首次通过 get 加载时,$_POST 将为空(因为该页面是通过 GET 调用请求的),您将收到这些错误。

但如果你有:

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    checkInputs();
}

那么您的检查功能将仅在通过 POST 请求调用脚本时运行。

于 2012-05-14T02:45:38.930 回答