私はログイン検証機能を実行するために 'username'と 'password'を保持する配列を設定し、 'username'と 'password'が24行目の未定義インデックスであるというエラーが発生し続けます。phpログインアレイの問題
どうしたのですか?ありがとう!あなたが$error[$fieldm]
を初期化しません
<?php require_once("redirect.php");
require_once("proj2Functions.php");
$errors = [];
$message = "";
if (isset($_POST["submit"])) {//1
$username = trim($_POST["username"]);
$password = trim ($_POST["password"]);
$fieldsRequire = array("username", "password");
foreach($fieldsRequire as $field) {//2
$value = trim($_POST[$field]);
if (!has_presence($value)) {//3
$errors[$field] = ucfirst($field) . " can't be blank";
}//3
}//2
$fieldsMax = 5;
foreach($fieldsRequire as $fieldm) {//4
$value = trim($_POST[$fieldm]);
if (!has_max_length($value, $fieldsMax)) {//5
//Line 24
$errors[$fieldm] .= "<br>- can't be more then {$fieldsMax} characters.";
}//5
}//4
foreach($fieldsRequire as $FIELD) {
$value1 = trim($_POST[$FIELD]);
if (!specialChar($value1)) {
$errors[$FIELD] .= "<br>- cannot have a $ sign.";
}
}
if (empty($errors)) {//6
if ($username == "zach" && $password == "zach") {//7
redirect_to("Homepage2.php");
} else {
$message = "Username/password do not match.";
}//8
}//6
}else {
$username = "";
$message = "Please log in.";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<title>Start Collay Login(beginLogin)</title>
</head>
<body>
<?php echo $message; ?>
<?php echo formErrors($errors); ?>
<?php print_r($_POST); ?>
<form action="beginLogin.php" method="post">
Username: <input type="text" name="username" value=""><br>
Password: <input type="text" name="password" value=""><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>
これは意味があります。ありがとう!新しいエラーを元の配列 "errors [$ field]"にどのように追加できますか? – zach