为什么我的 php 代码中出现未定义索引错误?
Why am I getting an Undifined Index error in my php code?
我正在尝试修改教程以满足我的需要,但当我收到如下错误时遇到了障碍:
( ! ) Notice: Undefined index: username in C:\someDirectory\includes\validation_functions.php on line 21
Call Stack
# Time Memory Function Location
1 0.0028 259080 {main}( ) ..\newUser.php:0
2 0.0238 350528 validate_presences( ) ..\newUser.php:16
我的包含如下所示:
<?php
require_once("/includes/session.php");
require_once("includes/db_connection.php");
require_once("includes/functions.php");
require_once("includes/validation_functions.php");
?>
并且我已经创建了一个数组来发送第 16 行中的必填字段,如下所示:
// validations
$required_fields = array("firstName", "lastName", "email", "username", "passward");
validate_presences($required_fields);
在 validation_functions.php 文件中我有:
function has_presence($value) {
return isset($value) && $value !== "";
}
function validate_presences($required_fields) {
global $errors;
foreach($required_fields as $field) {
$value = trim($_POST[$field]);
if (!has_presence($value)) {
$errors[$field] = fieldname_as_text($field) . " can't be blank";
}
}
}
..我在这个论坛上看到了类似的代码块和解决方案,但我的代码一定与数组有关。你能帮我找出为什么我会收到未定义的索引错误吗?
感谢您的帮助!
附言。第 21 行:$value =trim($_POST[$field]);
你应该把 trim($_POST[$field])
放在你的 function has_presence($value)
里面
function has_presence($field) {
return isset($_POST[$field]) && trim($_POST[$field]) !== "";
}
function validate_presences($required_fields) {
global $errors;
foreach($required_fields as $field) {
if (!has_presence($field)) {
$errors[$field] = fieldname_as_text($field) . " can't be blank";
}
}
}
您的错误消息告诉您 $_POST['username']
未设置,这意味着您的表单中缺少 <input name="username"
。
我正在尝试修改教程以满足我的需要,但当我收到如下错误时遇到了障碍:
( ! ) Notice: Undefined index: username in C:\someDirectory\includes\validation_functions.php on line 21
Call Stack
# Time Memory Function Location
1 0.0028 259080 {main}( ) ..\newUser.php:0
2 0.0238 350528 validate_presences( ) ..\newUser.php:16
我的包含如下所示:
<?php
require_once("/includes/session.php");
require_once("includes/db_connection.php");
require_once("includes/functions.php");
require_once("includes/validation_functions.php");
?>
并且我已经创建了一个数组来发送第 16 行中的必填字段,如下所示:
// validations
$required_fields = array("firstName", "lastName", "email", "username", "passward");
validate_presences($required_fields);
在 validation_functions.php 文件中我有:
function has_presence($value) {
return isset($value) && $value !== "";
}
function validate_presences($required_fields) {
global $errors;
foreach($required_fields as $field) {
$value = trim($_POST[$field]);
if (!has_presence($value)) {
$errors[$field] = fieldname_as_text($field) . " can't be blank";
}
}
}
..我在这个论坛上看到了类似的代码块和解决方案,但我的代码一定与数组有关。你能帮我找出为什么我会收到未定义的索引错误吗?
感谢您的帮助!
附言。第 21 行:$value =trim($_POST[$field]);
你应该把 trim($_POST[$field])
放在你的 function has_presence($value)
function has_presence($field) {
return isset($_POST[$field]) && trim($_POST[$field]) !== "";
}
function validate_presences($required_fields) {
global $errors;
foreach($required_fields as $field) {
if (!has_presence($field)) {
$errors[$field] = fieldname_as_text($field) . " can't be blank";
}
}
}
您的错误消息告诉您 $_POST['username']
未设置,这意味着您的表单中缺少 <input name="username"
。