[英]$_POST[] produces Undefined index:
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:...
您需要先檢查該值是否存在,然后再嘗試使用它
如果有人將fname字段留空並提交您的表單,則不會在$ _POST var中設置該表單
$fname = isset($_POST["fname"]) ? $_POST["fname"] : NULL;
if ($fname == NULL) {
echo "First name is required";
}
如果尚未將代碼包裝在適當的方法檢查中,則它將在每次加載頁面時運行,無論是否已提交表單,例如
<?
function checkInputs() { blah blah blah }
checkInputs();
?>
<form ...>
...
</form>
當窗體加載時 ,它的提交將執行你的checkInput功能。 第一次通過get加載表單時,$ _ POST將為空(因為該頁面是通過GET調用請求的),因此您會得到這些錯誤。
但是,如果您有:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
checkInputs();
}
那么您的檢查功能將僅在通過POST請求調用腳本時運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.