2

私のphpコードが私のフォームから名を取得しない理由を正確に理解するのに苦労しています。皆さんが助けてくれることを願っています。

それ以外はすべて、element_1_1である名フィールドだけで正常に電子メールで送信されます。

PHPは次のとおりです。

$<?php
$errors = ''; 
$myemail = 'example@example.co.uk';
if( empty($_POST['element_1_1'])  ||
empty($_POST['element_1_2'])  ||
empty($_POST['element_3']) ||
empty($_POST['element_2'])  ||
empty($_POST['element_5'])  ||
empty($_POST['element_4']))

$name = $_POST['element_1_1'];
$lastname = $_POST['element_1_2'];
$email_address = $_POST['element_3']; 
$number = $_POST['element_2'];
$area = $_POST['element_5'];
$discount = $_POST['element_4'];

if (!preg_match(
"/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i", 
$email_address))
{
    $errors .= "\n Error: Invalid email address \n";
}

if( empty($errors))
{
$to = $myemail; 
$email_subject = "";
$email_body = "".

"\n First Name:   $name \n  \n Second Name:   $lastname \n  \n Email:   $email_address \n  \n Phone Number:   $number \n \n Area(s):   $area \n \n Discount:   $discount \n".


$headers = "From: example@example.co.uk\n"; 
$headers .= "Reply-To: $email_address";

mail($to,$email_subject,$email_body,$headers);
//redirect to the 'thank you' page
header('Location: http://www.example.co.uk');
} 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
echo "";
echo " \n <a href='http://www.example.com'>Go     Back</a> \n";
?>


</body>
</html>

そしてここにフォームがあります:

<div id="bmvform-form_container">
    <form id="form_507993" class="appnitro"  method="post" action="formsend.php">
                <div class="form_description">
        <h2>Want To Receive Our Properties?</h2>
        <p><em>At Pure Acquisitions, we respect your privacy. Any details provided will NOT be sent to any third party without your consent.</em></p>
    </div>                      
        <ul >

    <li id="li_1" >
    <label class="description" for="element_1">Name </label>
    <span>
        <input id="element_1_1" name="element_1_1" class="element text" maxlength="255" size="14" value=""/>
        <label>First</label>
    </span>
    <span>
        <input id="element_1_2" name="element_1_2" class="element text" maxlength="255" size="14" value=""/>
        <label>Last</label>
    </span><p class="guidelines" id="guide_1"><small>We don't want to be rude!</small></p> 
    </li>       <li id="li_3" >
    <label class="description" for="element_3">Email Address </label>
    <div>
        <input id="element_3" name="element_3" class="element text medium" type="text" maxlength="255" value=""/> 
    </div><p class="guidelines" id="guide_3"><small>To send you important stuff!</small></p> 
    </li>       <li id="li_2" >
    <label class="description" for="element_2">Phone Number </label>
    <div>
        <input id="element_2" name="element_2" class="element text medium" type="text" maxlength="255" value=""/> 
    </div><p class="guidelines" id="guide_2"><small>We need to let you know about our properties!</small></p> 
    </li>       <li id="li_5" >
    <label class="description" for="element_5">Locations You Are Interested In </label>
    <span>
        <input id="element_5_1" name="element_5" class="element radio" type="radio" value="All" />
        <label class="choice" for="element_5_1">All</label>
        <input id="element_5_2" name="element_5" class="element radio" type="radio" value="London" />
        <label class="choice" for="element_5_2">London</label>
        <input id="element_5_3" name="element_5" class="element radio" type="radio" value="South of England" />
        <label class="choice" for="element_5_3">South of England</label>
        <input id="element_5_4" name="element_5" class="element radio" type="radio" value="West Midlands" />
        <label class="choice" for="element_5_4">West Midlands</label>
        <input id="element_5_5" name="element_5" class="element radio" type="radio" value="East Midlands" />
        <label class="choice" for="element_5_5">East Midlands</label>
        <input id="element_5_6" name="element_5" class="element radio" type="radio" value="North West" />
        <label class="choice" for="element_5_6">North West</label>
        <input id="element_5_7" name="element_5" class="element radio" type="radio" value="North East" />
        <label class="choice" for="element_5_7">North East</label>
        <input id="element_5_8" name="element_5" class="element radio" type="radio" value="Yorkshire & Humber" />
        <label class="choice" for="element_5_8">Yorkshire & Humber</label>
        <input id="element_5_9" name="element_5" class="element radio" type="radio" value="Wales" />
        <label class="choice" for="element_5_9">Wales</label>
        <input id="element_5_10" name="element_5" class="element radio" type="radio" value="Scotland" />
        <label class="choice" for="element_5_10">Scotland</label>

    </span><p class="guidelines" id="guide_5"><small>Let us know where in the country you are looking for property.</small></p> 
    </li>       <li id="li_4" >
    <label class="description" for="element_4">Ideal Discount From Market Value </label>
    <div>
        <input id="element_4" name="element_4" class="element text medium" type="text" maxlength="255" value=""/> 
    </div><p class="guidelines" id="guide_4"><small>How much discount (in percent) are you looking for?</small></p> 
    </li>

                <li class="buttons">
            <input type="hidden" name="form_id" value="507993" />

            <input id="saveForm" class="button_text" type="submit" name="submit" value="Submit" />
    </li>
        </ul>
    </form> 
</div>
4

2 に答える 2

3
if( empty($_POST['element_1_1'])  ||
empty($_POST['element_1_2'])  ||
empty($_POST['element_3']) ||
empty($_POST['element_2'])  ||
empty($_POST['element_5'])  ||
empty($_POST['element_4']))

$name = $_POST['element_1_1'];
$lastname = $_POST['element_1_2'];
$email_address = $_POST['element_3']; 
$number = $_POST['element_2'];
$area = $_POST['element_5'];
$discount = $_POST['element_4'];

ここにカーリーブラケットがありませんか?あなたが何をしたいかに応じて、私はこれまたはカーリーブラケットと同様のものを想定します。

if( empty($_POST['element_1_1'])  ||
empty($_POST['element_1_2'])  ||
empty($_POST['element_3']) ||
empty($_POST['element_2'])  ||
empty($_POST['element_5'])  ||
empty($_POST['element_4']))
{
$name = $_POST['element_1_1'];
$lastname = $_POST['element_1_2'];
$email_address = $_POST['element_3']; 
$number = $_POST['element_2'];
$area = $_POST['element_5'];
$discount = $_POST['element_4'];
}

とにかくifステートメントで何をしようとしていますか?それらの1つが空であるかどうかを確認してから、すべてを設定しますか?または、それらの1つが空であるかどうかを確認してから、フィールドの1つに入力する必要があるというメッセージをユーザーに返送する必要がありますか?次に、それを次のようなものに少し変更する必要があります。

if( empty($_POST['element_1_1'])  ||
    empty($_POST['element_1_2'])  ||
    empty($_POST['element_3']) ||
    empty($_POST['element_2'])  ||
    empty($_POST['element_5'])  ||
    empty($_POST['element_4']))
    {
    do something;    }
else {
$name = $_POST['element_1_1'];
    $lastname = $_POST['element_1_2'];
    $email_address = $_POST['element_3']; 
    $number = $_POST['element_2'];
    $area = $_POST['element_5'];
    $discount = $_POST['element_4'];

}
于 2012-10-25T14:11:09.843 に答える
0

あなたのifステートメントは何をしていますか?

if( empty($_POST['element_1_1'])  ||
empty($_POST['element_1_2'])  ||
empty($_POST['element_3']) ||
empty($_POST['element_2'])  ||
empty($_POST['element_5'])  ||
empty($_POST['element_4']))

これは何にも関係がないようですが、空の名前がない場合、$ nameは設定されません(これはifステートメントの後の最初の行であり、ifステートメントがtrueの場合にのみ呼び出されます)

私はあなたがすべての行を実行することを意図されていたと思います、それはそれらの周りに中括弧を必要とします。

于 2012-10-25T14:11:12.510 に答える