0

送信時にメールアドレスに送信されるように設定されたフォームに 2 つのチェックボックスを追加しました。フォームを処理していないだけです。チェックボックスを追加するまで、すべてがうまく処理されていました-

は次のHTMLとおりです。

<form id="form" method="post" name="validation" action="index.php" onsubmit="received()">
    <fieldset>
        <label for="name">Full Name:</label>
        <input type="text" name="name" title="Enter your name">

        <label for="attending"># Attending:</label>
        <input style="margin-left:190px;" type="text" name="attending" title="Optional">

        <label for="guests">Name of Guest(s): </label>
        <input style="margin-left:370px;" type="text" name="guests">

        <span class="fakelabel">Please Check All that Apply:</span>

        <input type="checkbox" name="prenuptial" value="Yes"><span class="additions">I Will Be Attending the Prenuptial Dinner</span><br>

        <input type="checkbox" name="transportation" value="Yes"><span class="additions">I Will Be Requiring Transportation To and From the Wedding</span>

        <div class="submitcontainer">
            <input type="submit" style="font-size:0;" name="submit" class="submitbutton" id="submit">
    </fieldset>
</form>

プロセス(新しく追加された部分だけを残してたくさん切り取った-)

 $name = strip_tags($_POST['name']);
 $attending = strip_tags($_POST['attending']);
 $guests = strip_tags($_POST['guests']);
 $prenuptial = strip_tags($_POST['prenuptial'] == 'Yes');
 $transportation = strip_tags($_POST['transportation'] == 'Yes');
 $to = 'email@yahoo.com'; 
 // Send Message

 mail($email, "RE: Wedding RSVP", $intro, $headers); 
 mail($to, "Wedding RSVP", "Name: {$name}\n Attending: {$attending}\n Guests: {$guests}\n Prenuptial: {$prenuptial}\n Transportation: {$transportation}\n");  
 ?>

エラーがここの最後の行にあるかどうか疑問に思っていますか?

4

4 に答える 4

4

なぜstrip_tagsですか?

これを行います。以下のコードは、チェックボックスが選択されているかどうかを確認します。チェックした場合、Yeselseを送信しますNoNo送信したくない場合は、テキストを null に変更します。

 $name = strip_tags($_POST['name']);
 $attending = strip_tags($_POST['attending']);
 $guests = strip_tags($_POST['guests']);
 $prenuptial = (isset($_POST['prenuptial']) && $_POST['prenuptial'] == 'Yes') ? "Yes" : "No";
 $transportation = (isset($_POST['transportation']) && $_POST['transportation'] == 'Yes') ? "Yes" : "No";
 $to = 'email@yahoo.com';

両方のチェックボックスに値を指定したことを確認してくださいyes。したがって、for を投稿するyesと、両方のチェックボックスの値になります。

<input type="checkbox" name="prenuptial" value="Yes"><span class="additions">I Will Be Attending the Prenuptial Dinner</span><br>
<input type="checkbox" name="transportation" value="Yes"><span class="additions">I Will Be Requiring Transportation To and From the Wedding</span>

他の値が必要な場合は、それを置くことができます。そして、あなたは使用して確認することができますisset

例 - このように追加できます

<input type="checkbox" name="prenuptial" value="I Will Be Attending the Prenuptial Dinner"><span class="additions">I Will Be Attending the Prenuptial Dinner</span><br>  
<input type="checkbox" name="transportation" value="I Will Be Requiring Transportation To and From the Wedding"><span class="additions">I Will Be Requiring Transportation To and From the Wedding</span>

そしてphpでこのように書く

$prenuptial = '';
if (isset($_POST['prenuptial'])) {
    $prenuptial = $_POST['prenuptial'];
}
于 2013-01-23T04:04:13.010 に答える
1

私が見ていることがいくつかあります。最初に、チェックボックス キーが存在するかどうかを確認する必要があります (ユーザーがチェックしないと、キーが失われます)。それらが常にここにあることを確認する 1 つの方法を確認できます。

第二に、あなたの親が間違った場所にいます。あなたが持っている:

strip_tags($_POST['transportation'] == 'Yes');

あなたが意味したのは:

strip_tags($_POST['transportation']) == 'Yes';

strip_tags第三に、値をチェックしている場合は必要ありません。さらに言えば、平等のテストさえ必要ありません。チェックボックスはチェックされている場合にのみ表示されるため、次のように呼び出すだけです。

$transpertation = isset($_POST['transportation']);

また、チェックボックスは特定の文字列値ではなく 0 または 1 を渡すためにのみ使用する必要があることにも注意してください。

于 2013-01-23T04:02:27.547 に答える
0

これを変える:

$prenuptial = strip_tags($_POST['prenuptial'] == 'Yes');
$transportation = strip_tags($_POST['transportation'] == 'Yes');

これに:

$prenuptial = strip_tags($_POST['prenuptial'] == TRUE);
$transportation = strip_tags($_POST['transportation'] == TRUE);

またはこれに:

$prenuptial = !empty(strip_tags($_POST['prenuptial']));
$transportation = !empty(strip_tags($_POST['transportation']));
于 2013-01-23T04:03:45.340 に答える
0

チェックボックスが設定されているかどうかを確認してから、値を指定してみてください。

if(isset($_POST['transportation']) && $_POST['transportation'] == 'Yes')
{
    $transportation = 'Yes';
}
else
{
    $transportation = 'No';
}
于 2013-01-23T04:05:57.213 に答える