0

しばらくの間、これに苦労しています。基本的に、名前、メールアドレス、電話番号、場所、日付、予算の6つのフィールドがあります。必須フィールドは名前とメールアドレスのみです。メールを受け取ると、残りのフィールドも表示されます。記入済みのフィールドのみを受け取ることはできますか?

これがコードです。

<?php
// get posted data into local variables
$EmailFrom = "email@email.com";
$EmailTo = "email@email.com";
$Subject = "My form";
$Name = Trim(stripslashes($_POST['Name'])); 
$Email = Trim(stripslashes($_POST['Email'])); 
$Phone = Trim(stripslashes($_POST['Phone']));

$Location = Trim(stripslashes($_POST['Location'])); 
$Date = Trim(stripslashes($_POST['Date']));
$Budget = Trim(stripslashes($_POST['Budget'])); 

// validation
$validationOK=true;
if (!$validationOK) {
  print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
  exit;
}

$userip = ($_SERVER['X_FORWARDED_FOR']) ? $_SERVER['X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];

// prepare email body text
$Body = "";
$Body .= "Location: "; $Body .= $Location; $Body .= "\n";
$Body .= "Date: "; $Body .= $Date; $Body .= "\n";
$Body .= "Budget: "; $Body .= $Budget; $Body .= "\n";

$Body .= "Name: "; $Body .= $Name; $Body .= "\n";
$Body .= "Email: "; $Body .= $Email; $Body .= "\n";
$Body .= "Phone: "; $Body .= $Phone; $Body .= "\n";
$Body .= "User's IP: ". $userip;

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");

// redirect to success page 
if ($success){
  print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
}
else{
  print "<meta http-equiv=\"refresh\" content=\"0;URL=#\">";
}
?>
4

4 に答える 4

1

を使用して、値が投稿されたかどうかを確認します。

$Phone = !empty($_POST['Phone']) ? trim(stripslashes($_POST['Phone'])) : false;

その後、$Phone入力されていない場合はfalseになり、次のように実行できます。

if($Phone)
    $Body .= "Phone: "; $Body .= $Phone; $Body .= "\n";
于 2012-06-08T00:57:41.697 に答える
0

値がそこにあるかどうかを確認するためのチェックを行うだけです。あなたはこれを行うことができます:

if (!empty($Location) { $Body .= "Location: "; $Body .= $Location; $Body .= "\n"; }

ectect。これは、場所が空でない場合は、そのコードを実行することを意味します

于 2012-06-08T00:57:53.677 に答える
0

はい、そうです。フィールドを本文に連結する前に、次のようにチェックを追加してください。

if(!$Location)
{
    $Body .= "Location: "; $Body .= $Location; $Body .= "\n";
}
/*You can also use empty like: */
if(!empty($Date))
{
    $Body .= "Location: "; $Body .= $Date; $Body .= "\n";
}
/*Continue here*/
于 2012-06-08T00:58:57.000 に答える
-1
if (isset($_POST['phone'] && !empty($_POST['phone']){
    $phone = $_POST['phone'];
    //add $phone to email body
}
于 2012-06-08T01:01:47.423 に答える