0

別の質問(各フィールドの横にフォーム検証エラーを表示)で次のコードを見つけました:

 <?php
        $error = array(
            "name" => "",
            "email" => "",
            "subject" => "",
            "message" => ""
        );
    ?>

    <?php
        if (empty($_POST["email"]))
            $error["email"] = "Email is required!";
        elseif (!isEmail($_POST["email"]))
            $error["email"] = "Not a Valid Email!";
    ?>

エラーがない場合は空になり、ユーザーにはエラー メッセージが表示されません。

フォーム コードでは、次のように更新する必要があります。

    <small class="errorText"><?php echo $error["name"]; ?></small>
    <small class="errorText"><?php echo $error["email"]; ?></small>

バックエンドでは、は または の$error["email"]いずれ"This field is required"かになり"Not a valid email address!"ます。

これを自分のコードに適用しようとしました:

上記のphpセクションをemail.phpに貼り付け、フォームを次のように更新しました。

    <form id="contacts-form" method="post" action="email.php" target="myiframe" >
       <fieldset>
       <div class="field">
          <label>Your E-mail:</label>
          <input type="email" name="email" value=""/>
          <small class="errorText"><?php echo $error["email"]; ?></small>
       </div>
       ...

$error が定義されていないというエラーが表示されるようになりました。私はphp/HTMLデザインが初めてで、例から学ぼうとしていることを心に留めておいてください

ありがとう

4

1 に答える 1

0

まず、この行を修正する必要があります。

if (empty()$_POST["email"])

そのはず

if (empty($_POST["email"]))

次に、フォームで$ errorを定義していない可能性があるため、エラーが表示されます。エラーが定義されているかどうかを確認するには、次のように使用できます

<?php echo isset($error['name'])?$error['name']:""; ?>

また、この設定でエラーを表示するには、フォームが存在するのと同じファイルをフォームにポイントする必要があることにも注意してください。

issetについてここで読む

ここで構文について読んでください

于 2013-02-10T21:06:58.403 に答える