0

HTMLフォームをメール本文にコピーしようとしています。以下は、フォームがすでにphpファイルにあるコードですが、ユーザーがhtmlフォームファイルを送信すると、その間のすべてのフォームデータが(無効な要素として)電子メールの本文にコピーされます。また、添付ファイルフィールドがある場合は、メールに添付する必要があります。

<?php
// multiple recipients
$to  = 'demo@localhost.com' . ', '; // note the comma
$to .= 'demo@localhost.com';

// subject
$subject = 'Birthday Reminders for August';

// message
$message = '
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Untitled Document</title>
</head>

<body style="padding:3px; margin:0px;" bgcolor="#FFFFFF">
<table cellpadding="0" cellspacing="0" border="0" width="440">

    <tr><td style="height:10px"></td></tr>
    <tr>
      <td colspan="2" style="text-align:justify; line-height:15px;" class="body">

      <form name="frm" method="POST" action="careersuccess.php" enctype="multipart/form-data">
      <table cellpadding="0" cellspacing="0" border="0" width="100%">
          <tr>
            <td width="23%" class="body"> Name</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strname" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Address</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><textarea cols="16" name="straddress"></textarea></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> City</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strcity" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> State</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strstate" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Contact No</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="strno" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Email</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="text" name="stremail" class="textfield"></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Comments</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><textarea cols="16" name="strcomments"></textarea></td>
        </tr>
        <tr><td style="height:3px"></td></tr>
        <tr>
            <td width="23%" class="body"> Resume</td>
            <td width="3%" class="body">:</td>
            <td width="74%"><input type="file" name="strresume"></td>
        </tr>
        <tr><td style="height:10px"></td></tr>
        <tr>

        </tr>

      </table>   
     </form>

</td>
    </tr>
    <tr>
      <td colspan="2" align="center"> </td>
  </tr>
    </table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>
4

1 に答える 1

0

フォームはWebサイトから送信されたものであり、電子メールで送信可能なフォームを作成しようとしているのではないと想定します。フォームで送信されたデータをコピーするには、$ _ POST [""]; 確かにデータを取得するための最良の方法でしょう。明らかに、電子メールが受信者の受信トレイに到着するとデータは操作できなくなりますが、私が言うように、電子メールから送信できるフォームを作成しようとしているのではないと思います。

ウェブサイトのフォームは問題ありませんでした。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />


<title>Untitled Document</title>
</head>

<body style="padding:3px; margin:0px;" bgcolor="#FFFFFF">
<table cellpadding="0" cellspacing="0" border="0" width="440">

<tr><td style="height:10px"></td></tr>
<tr>
  <td colspan="2" style="text-align:justify; line-height:15px;" class="body">

  <form name="frm" method="POST" action="careersuccess.php" enctype="multipart/form-data">
  <table cellpadding="0" cellspacing="0" border="0" width="100%">
      <tr>
        <td width="23%" class="body"> Name</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strname" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Address</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><textarea cols="16" name="straddress"></textarea></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> City</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strcity" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> State</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strstate" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Contact No</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="strno" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Email</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="text" name="stremail" class="textfield"></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Comments</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><textarea cols="16" name="strcomments"></textarea></td>
    </tr>
    <tr><td style="height:3px"></td></tr>
    <tr>
        <td width="23%" class="body"> Resume</td>
        <td width="3%" class="body">:</td>
        <td width="74%"><input type="file" name="strresume"></td>
    </tr>
    <tr><td style="height:10px"></td></tr>
    <tr>

    </tr>

  </table>   
 </form>

</td>
</tr>
<tr>
  <td colspan="2" align="center"> </td>
</tr>
</table>
</body>
</html>

その場合、ファイルcareersuccess.phpには次のようなものを含める必要があります。

<?php
// multiple recipients
$to  = 'demo@localhost.com' . ', '; // note the comma
$to .= 'demo@localhost.com';

// subject
$subject = 'Birthday Reminders for August';

$strName = $_POST["strname"]; //assigns strname from form to PHP variable
$strAddress = $_POST["straddress"];
$strCity = $_POST["strcity"];
$strState = $_POST["strstate"];
$strNumber = $_POST["strnumber"];
$strEmail = $_POST["stremail"];
$strComments = $_POST["strcomments"];
$strResume = $_POST["strresume"];
$lineBreak = "<br />\n\"; //adds carriage return to break up your message

$message = "Name: ".$strName.$lineBreak."Address: ".$strAddress.$lineBreak."City: ".$strCity.$lineBreak."State: ".$strState.$lineBreak...for the rest of your variables;

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: Mary <mary@example.com>, Kelly <kelly@example.com>' . "\r\n";
$headers .= 'From: Birthday Reminder <birthday@example.com>' . "\r\n";
$headers .= 'Cc: birthdayarchive@example.com' . "\r\n";
$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
?>

これにより、送信されたフォームの値がmail()関数の$message変数の電子メールにコピーされます。

于 2012-09-11T12:53:26.697 に答える