0
    $from = "test@localhost.com";
    $to = "test@localhost.com";
    $subject =$_POST['subject'];
    $message = $_POST['body'];

    // include the from email in the headers
    $headers = "From: $from";

    // boundary
    $time = md5(time());
    $boundary = "==Multipart_Boundary_x{$time}x";

    // headers used for send attachment with email
    $headers .= "\nMIME-Version: 1.0\n" . 
                "Content-Type: multipart/mixed;\n" . 
                " boundary=\"{$boundary}\"";

    // multipart boundary
    $message =  "--{$boundary}\n" . 
                "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . 
                "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";

    // Fily Type Validation 
    $allowedExtensions = array("jpeg","jpg");

    // attach the attachments to the message
    $files = $_FILES['imgupload'];

    for($i=0; $i < count($files['name']); $i++)
        {
            if ($files['name'][$i] != '') 
            {
            $file_name = $files['name'][$i];
            $file_path = pathinfo($file_name);
            $file_ext = $file_path['extension'];
                if (in_array($file_ext, $allowedExtensions)) 
                {               
                $tmp_name = $files['tmp_name'][$i];
                $content = chunk_split(base64_encode(file_get_contents($tmp_name)));
                $message .= 
                            "--{$boundary}\n" .
                            "Content-Type: {\"application/octet-stream\"};\n" . 
                            " name=\"{$file_name}\"\n" .
                            "Content-Disposition: attachment;\n" . 
                            " filename=\"{$file_name}\"\n" .
                            "Content-Transfer-Encoding: base64\n\n" . $content . "\n\n";

                } else { $errormgs= 'alert("File Type is not accepted, please use an image.")'; $formerrors = 'true'; }
            } // else { $errormgs= 'alert("You Forgot to Attach the Photo")'; $formerrors = 'true'; }
        }

    // sending mail
    if (!$formerrors) 
    {
        $sendmail = mail($to, $subject, $message, $headers);
    }  else 
    {
        print '<script type="text/javascript">';
        print $errormgs;
        print '</script>';  
    }

これは私が書いたスクリプトで、追加の添付入力フィールドごとに PHP コードを変更することなく、フォームにできるだけ多くの入力フィールドを作成し、専用の電子メールに添付ファイルを配信できるようにします。

私が抱えている唯一の問題は、添付フィールドのアラートです。ファイルが選択されていない場合は、画像の追加を要求するメッセージがポップアップ表示されます。何らかの理由で機能しません。メッセージを含むelseステートメントを追加すると、画像を追加するかどうかに関係なく、フォームはそのアラートを出し続けます。私は何を間違っていますか?

助けてくれてありがとう、そして私が自分自身を悪く表現しているなら、私の言葉でごめんなさい。

4

0 に答える 0