0

人の名、姓、電子メール、部門などの特定のフィールドを取得し、その情報を電子メールフォームに送信するアプリケーションフォームを作成しています。すべてが完璧に機能しますが、ユーザーが選択した部門を電子メールの件名に表示したいと考えています。ユーザーに入力して PHP 電子メール ファイルで $_POST を使用させる代わりに、その部分をオプションにしました。私はそれがマイナーだと確信していますが、それをどのように行うべきかはわかりません。何か提案はありますか?前もって感謝します

----------------------------HTMLコードはこちら------------------ --------

    <body style="padding:3px; margin:0px;" bgcolor="#FFFFFF"> 
    <center>
    <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="php file" enctype="multipart/form-data"> 
          <center>
          <table cellpadding="0" cellspacing="0" border="0" width="100%"> 
              .........
              .........
              .........
            <tr><td style="height:3px"></td></tr>
            <tr>
            <td width = "23%" class="body">Departments</td>
            <td width = "3%" class ="body">:</td>
            <td width="74%">
                <select>

     <option value="departments" name = "departments">Engineering</option>
     <option value="departments" name = "departments">Marketing</option>
     <option value="departments" name = "departments">PR/Social</option>
     <option value="departments" name = "departments">Media</option>
                </select>
            </td>
            </tr>

-------------------PHP--------------------------

       <?php

if(!empty($_FILES['resume_name']['name'])){

    $file_name=$_FILES['resume_name']['name'];
    $temp_name=$_FILES['resume_name']['tmp_name'];
    $file_type=$_FILES['resume_name']['type'];
    $file_size=$_FILES['resume_name']['size'];

    $base=basename($file_name);
    $extension= pathinfo($base, PATHINFO_EXTENSION);

    $allowed_ext=array("doc","docx","pdf","zip","jpeg","jpg","txt");

    if (in_array($extension,$allowed_ext)){
    $from=$_POST['email'];
    $fname=$_POST['first_name'];


    $lname=$_POST['last_name'];
        $to="travis.dacosta1@gmail.com";
        $subject= $departments;
        $credentials=$_POST['qualifications'];

        $message= 

        '           The person that contacted you is: '.$fname.' '.$lname.'
                E-mail: '.$from.' 
                Subject: '$subject'
                Qualifications: '.$credentials.'

        |---------END MESSAGE----------|';


        $file=$temp_name;
        $content = chunk_split(base64_encode(file_get_contents($file)));
        //$content = chunk_split(base64_encode(file_get_contents($content)));
        $uid=md5(uniqid(time()));


        $header =  "From:   ". $from. "\r\n";
        $header .= "Reply-To:   ". $replyto. "\r\n";
        $header .= "MIME-Version: 1.0\r\n";

        $header .="Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";


        $header .= "--".$uid."\r\n";
        $header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
        $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
        $header .= $message."\r\n\r\n";
        $header .= "--".$uid."\r\n";

        $header .= "--".$uid."\r\n";
        $header .= "Content-type:   ".$file_type."; name=\"".$file_name."\"\r\n";
        $header .= "Content-Transfer-Encoding: base64\r\n";
        $header .= "Content-Disposition: resume_name; file_name=\"".$file_name."\"";
        $header .= $content."\r\n\r\n";

        if(@mail($to, $subject, $message, $header)){
                echo "Success";
                }
                exit();
    ?>
4

3 に答える 3

1

次のように、オプションの値を設定する必要があります。

<option value="Engineering" name = "departments">Engineering</option>
<option value="Marketing" name = "departments">Marketing</option>
...

あなたのPHPよりもこれを入れてください:

$subject = $_POST['departments'];

これは最善の解決策ではありませんが、うまくいきます。

PHP ファイル (config) 配列のどこかで使用可能な departments を定義し$departments = array(1 => 'department1', 2 => 'department2')、html テンプレートで foreach ループを部門の配列の上に作成し、値を配列のキーに設定し、電子メール スクリプトで使用することをお勧めします。$deparments[intval($_POST['departments'])]

于 2013-12-22T19:26:22.740 に答える