Notice: Undefined index: field_name in /path/to/script.php on line 10
表單中可選字段用戶未填寫,提交後 $_POST['field_name'] 不存在,直接讀取拋 Notice。
$field = isset($_POST['field_name']) ? $_POST['field_name'] : '';
// 或
$field = isset($_POST['field_name']) ? trim($_POST['field_name']) : '';
$field = $_POST['field_name'] ?? '';
// 連鏈默認值
$field = $_POST['field_name'] ?? $_GET['field_name'] ?? 'default';
$field = array_key_exists('field_name', $_POST) ? $_POST['field_name'] : '';
function getPost($key, $default = '', $trim = true) {
$val = $_POST[$key] ?? $default;
return $trim && is_string($val) ? trim($val) : $val;
}
// 使用
$username = getPost('username');
$email = getPost('email');
$age = getPost('age', 0, false); // 數字不 trim
<input type="text" name="username">
<input type="email" name="email">
<select name="city"><option value="">請選擇</option>...</select>
$_POST/$_GET/$_REQUEST 讀取**統一用 ?? '' 或 isset()**。error_reporting(E_ALL & ~E_NOTICE)(但建議修代碼而非隱藏錯誤)。「輸入不可信,讀取必判空」—— PHP 表單處理的第一道防線,用 ?? 一行解決。