0

こんにちは、私は電子メールによる HTML フォームの送信に取り組んでいます。サーバー側のスクリプトは PHP です。私のhtmlフォームは

<form action='sendmail.php' method='post'>
   Name:<input type="text" name="name">
    File:<input type='file' name='attach'>
<input type="submit">

メールを送信するための私のphpファイルは

<?php 
   $strTo = "xyz@gmail.com";
     $strHeader .= "From: ".$_POST["name"]."<".$_POST["name"].">";  
     $strHeader .= "MIME-Version: 1.0\n";
     $strHeader .= "MIME-Version: 1.0\n"; 
   $strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";  
    $strHeader .= "This is a multi-part message in MIME format.\n";
   $strHeader .= "--".$strSid."\n"; 
    $strHeader .= "Content-type: text/html; charset=utf-8\n"; 
    $strHeader .= "Content-Transfer-Encoding: 7bit\n\n";  
    $strHeader .= $strMessage."\n\n";  
 if($_FILES["attach"]["name"] != "")
 {
        $strFilesName = $_FILES["fileAttach"]["name"];  
        $strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"])));  
       $strHeader .= "--".$strSid."\n";  
         $strHeader .= "Content-Type: application/octet-stream; name=\"".$strFilesName."\"\n";  
       $strHeader .= "Content-Transfer-Encoding: base64\n";  
        $strHeader .= "Content-Disposition: attachment; filename=\"".$strFilesName."\"\n\n";  
       $strHeader .= $strContent."\n\n";  
       }
 $flgSend = @mail($strTo,"no-subjet",null,$strHeader); 

しかし、if条件にはなりません

4

1 に答える 1

7

フォームを次のように置き換えてみてください。

<form action="sendmail.php" method="post" enctype="multipart/form-data">
    Name:<input type="text" name="name">
    File:<input type="file" name="attach" id="attach">
    <input type="submit">
</form>

フォームのenctype属性は重要です。

詳細については、次のリンクを参照してください: http://www.w3schools.com/php/php_file_upload.asp

また、入力ファイルの名前がattachであるなど、PHP のすべての名前が HTML と一致していることを確認してください。したがって、PHP でも同じである必要があります。

if($_FILES["attach"]["name"] != "")
{
    $strFilesName = $_FILES["attach"]["name"];
    ...
}
于 2013-01-19T07:32:50.037 に答える