簡體   English   中英

$ _POST []產生未定義的索引:

[英]$_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM