0

これが私の問題です。同じページに 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);
}
?>
4

1 に答える 1

1

<hidden>フォームの名前でフォーム フィールドを追加できます。

  <input type="hidden" name="formname" value="form1">

次に、PHP で、それを使用してフォームを識別します。

  if ($_POST['formname'] == "form1") {
      // ifs for first form
  }

(このコードにはエラーチェックがまったくないことに注意してください!)

于 2013-01-04T22:01:35.890 に答える