-1

お問い合わせフォームに少し問題があります。私はすべて正しいと思っていますが、いつも同じ間違った結果になります。

これが私のコードです:

    <?php
    if (isset($_POST['contact_name']) && isset($_POST['contact_email']) && isset($_POST['contact_message'])) {
        $contact_name = $_POST['contact_name'];
        $contact_email = $_POST['contact_email'];
        $contact_message = $_POST['contact_message'];

        if (!empty($contact_name) && !empty($contact_email) && !empty($contact_message)) {
            echo '0K!';
        } else {
            echo 'Every field is required.';
        }
    }
?>          
        <form action="contacts.php" method="POST">
            Nome:<br><input type="text" name="contact_name" maxlength="25"><br><br>
            Email:<br><input type="text" name="contact_email" maxlength="50"><br><br>
            Mensagem:<br>
            <textarea name="contact_message" rows="6" cols="30" maxlength="1000"></textarea><br><br>
            <input type="submit" value="Enviar">
        </form>

すべてのフィールドに入力すると、「すべてのフィールドが必要です」という同じ結果が得られます。「OK!」と表示されるはずです。しかし、以前にテストしたので、すべてのフィールドが私が書いたものを受け取ったことを知っています。

初歩的な問題なのはわかっているのですが、わかりません。

4

3 に答える 3

1

これを試して:

<?php
if(isset($_POST['submit'])) {
    $contact_name = $_POST['contact_name'];
    $contact_email = $_POST['contact_email'];
    $contact_message = $_POST['contact_message'];

    if (empty($contact_name) && empty($contact_email) && empty($contact_message)) {
        echo 'Every field is required.'; //This would be the message if the field(s) are empty.
    } else {
        echo 'OK!'; //This would be the message if all the fields are filled in.
    }
}
?>          
    <form action="contacts.php" method="POST">
        Nome:<br><input type="text" name="contact_name" maxlength="25"><br><br>
        Email:<br><input type="text" name="contact_email" maxlength="50"><br><br>
        Mensagem:<br>
        <textarea name="contact_message" rows="6" cols="30" maxlength="1000"></textarea><br><br>
        <input type="submit" value="Enviar" name="submit">
    </form>
于 2013-11-09T18:21:42.830 に答える
1

エラーは次のとおりでした: !empty($contact_mensagem)(メッセージは halfer によって編集されました) ですが、実際には$contact_message. 私は自分のコンピューターでコードを試してみましたが、うまくいきました:

 <?php
    if (isset($_POST['contact_name']) && isset($_POST['contact_email']) && isset($_POST['contact_message'])) {
        $contact_name = $_POST['contact_name'];
        $contact_email = $_POST['contact_email'];
        $contact_message = $_POST['contact_message'];

        if (!empty($contact_name) && !empty($contact_email) && !empty($contact_message)) {
            echo '0K!';
        } else {
            echo 'Every field is required.';
        }
    }
?>          
        <form action="contacts.php" method="POST">
            Nome:<br><input type="text" name="contact_name" maxlength="25"><br><br>
            Email:<br><input type="text" name="contact_email" maxlength="50"><br><br>
            Mensagem:<br>
            <textarea name="contact_message" rows="6" cols="30" maxlength="1000"></textarea><br><br>
            <input type="submit" value="Enviar">
        </form>
于 2013-11-09T20:04:12.300 に答える
0

あなたのアウターifは冗長です。これらは POST 操作中にのみ設定されますが、フォーム要素は常に値を提供するため、完了しているかどうかに関係なく、すべての POST に対して設定されます。したがって、これを使用してください:

if ($_POST) {

次に、インデックスが存在しない場合に警告が発生しないように値を読み取ります。

$contact_name = isset($_POST['contact_name']) ? $_POST['contact_name'] : null;
$contact_email = isset($_POST['contact_email']) ? $_POST['contact_email'] : null;
$contact_message = isset($_POST['contact_message']) ? $_POST['contact_message'] : null;

次に、次のように簡単にテストできます。

if ($contact_name && $contact_email && $contact_message) {
     // ok
}
于 2013-11-09T18:19:52.883 に答える