これが私の問題です。同じページに 2 つのフォームがあります。最初のフォームは正常に動作します。しかし、2 番目のフォームの送信ボタンをクリックすると、2 つの通知が届きます。最初は、「$email = $_POST["email"];」を参照している「undefined index: email」と言います。私のコーディングで。2 つ目は、"$password = $_POST["password"];" を参照している "undefined index: password" です。私のコーディングで。最初のフォーム用に作成したすべての「if ステートメント」の影響を 2 番目のフォームに受けさせたくありません。そして、2 番目のフォームの「if ステートメント」をさらに作成する予定です。たとえば、2 番目のフォームで送信ボタンを押すと、「メールとパスワードを入力する必要があります」というメッセージが表示されます。これは、最初のフォームにのみ適用したかったエラーです。
私の質問は次のとおりです。「ifステートメント」の特定のグループによってのみフォームが影響を受けるようにするにはどうすればよいですか? css コーディングのように ID を適用しますが、フォームまたは「if ステートメント」にどうすればよいので、「if ステートメント」は特定のフォームにのみ影響しますか?
コーディングは次のとおりです。
<form action="login.php" method="post">
<ul id="login">
//login information
<li id="loginn">
<input type="submit" value="Log in">
</li>
</ul>
</form>
<form action="" method="post">
<ul id="register">
//register info list items
<li>
<input type="submit" value="Sign up">
</li>
</ul>
</form>
<?php
if (empty($_POST) === false) {
$email = $_POST["email"];
$password = $_POST["password"];
if (empty($email) === true || empty($password) === true) {
$errors[] = "You need to enter an email and password.";
} else if (user_exists($email) === false) {
$errors[] = "The email you entered is not in our records. Have you registered?";
} else if (user_active($email) === false) {
$errors[] = "Go to your email, open the email we sent you,and activate your account.";
} else {$login = login($email, $password);
if ($login === false) {
$errors[] = "That email/password combination is incorrect.";
} else {
$_SESSION['users_id'] = $login;
header('Location: homepage.php');
exit();
}
}
}
if (empty($errors) === false) {
?>
<?php
echo output_errors($errors);
}
?>