메일폼 제작했는데, 첨부파일이 안됩니다 ㅠ

메일폼 제작했는데, 첨부파일이 안됩니다 ㅠ

QA

메일폼 제작했는데, 첨부파일이 안됩니다 ㅠ

본문

html 코드는 이렇고,

 


<form name="formmail" method="get" action="consulting.php" onSubmit="return chkMailFrm()" id="form">
               <input type="text" name="name" placeholder="이름 또는 기업명" class="input_name">
               <input type="text" name="tell" placeholder="연락처" class="input_tell">
               <input type="text" name="email" placeholder="이메일" class="input_email">
               <input type="text" name="address" placeholder="희망지역" class="input_address">
               <textarea name="area" id="area" placeholder="간단소개(생략가능)" cols="30" rows="10" class="input_area"></textarea>
              
                 <input type="file" name="upfile" size="50">
                  
               <button type="submit" class="submit_btn" name="submit" id="submit">보내기</button>
           </form>

php코드는 이렇습니다.


<?
//보내는 이
  $recipient = "email.naver.com";
//제목 처리
  $subject = '=?UTF-8?B?'.'?=제목입니다.';
//메일주소
  $mail_from = '=?UTF-8?B?'.base64_encode($_GET['email']).'?=';

 // --- 첨부화일이 있을경우 --- //
 if($upfile && $upfile_size) {
 $filename=basename($upfile_name); // 파일명 추출
 $fp = fopen($upfile,"r"); // 파일 열기
 $file = fread($fp,$upfile_size); // 파일 읽기
 fclose($fp);  // 파일 닫기
 if ($upfile_type == ""){
  $upfile_type = "application/octet-stream";
 }
     
     
//메일내용
  $mail_body = "<table width='1100' border='0' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC'>
    
       <tr> 
          <td width='200' height='30' align='center' bgcolor='#eeeeee'>이름 또는 기업명</td>
          <td width='900' bgcolor='#FFFFFF'>". $_GET['name']."</td></tr>".    
      
      " <tr> 
          <td width='200' height='30' align='center' bgcolor='#eeeeee'>연락처</td>
          <td width='900' bgcolor='#FFFFFF'>". $_GET['tell']."</td></tr>".    
      
      
      " <tr> 
          <td width='200' height='30' align='center' bgcolor='#eeeeee'>이메일</td>
          <td width='900' bgcolor='#FFFFFF'>". $_GET['email']."</td></tr>".    
      
      
      " <tr> 
          <td width='200' height='30' align='center' bgcolor='#eeeeee'>희망지역</td>
          <td width='900' bgcolor='#FFFFFF'>". $_GET['address']."</td></tr>".    
      " <tr> 
          <td width='200' height='30' align='center' bgcolor='#eeeeee'>간단설명</td>
          <td width='900' bgcolor='#FFFFFF'>". $_GET['area']."</td></tr>".    
      
      "</table>";
//메일 발송처리
  $header = "From:$subject\n";
  $header = "Content-Type: text/html;charset=UTF-8";
  $header .= "From : $mail_from <".$mail_from.">\n"; 
 
  $email = mail($recipient, $subject, $mail_body, $header);
  if (!$email)
    echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> <script>
         window.alert('메일 발송이 실패하였습니다. ');
         history.go(-1);
         </script>";
  else
    echo "         <script>
         window.alert('메일이 정상적으로 발송되었습니다.');
         history.go(-1);
         </script>";
?>

 

근데 뭐가 잘못됬는지.... 첨부파일이 첨부가 되도 첨부되어있지않은상태에서 메일이 오는데 어디가 문제일까요 ㅠㅠ?

이 질문에 댓글 쓰기 :

답변 2

form에.. enctype="multipart/form-data" 추가

아제가 php 문이랑 html 문이랑 좀 착각을해서 다시 소스를 공유드려볼께요.

지금 여기에는 첨부파일 코드는 삽입되어있지 않은데, php에 삽입하려고하면 어떻게 넣어야할지 해서요 ㅠ

php


<meta charset="utf-8">
<?php
if(isset($_POST['email'])) {
     
    
	$email_to = "*** 개인정보보호를 위한 이메일주소 노출방지 ***";
	$email_subject = "제목";
	$email_subject = '=?UTF-8?B?'.base64_encode($email_subject).'?=';

     
     
    function died($error) {
        // your error code can go here
        echo "<script> alert('메일발송을 실패하였습니다. 항목을 다시한번확인해 주세요.');";
		echo "history.go(-1);";
		echo "</script>";
        die();
    }
    // validation expected data exists
    if(!isset($_POST["catego"]) ||
        !isset($_POST['com_name']) ||
        !isset($_POST['email']) ||
       !isset($_POST['address']) ||
        !isset($_POST['telephone']) ||
        !isset($_POST['comments'])) {
        died('We are sorry, but there appears to be a problem with the form you submitted.');       
    }
     

    $catego = implode(" / ",$_POST["catego"]);
    //$sangpum = $_POST['sangpum'];
    $com_name = $_POST['com_name']; // required
    $email_from = $_POST['email']; // required
    $address_from = $_POST['address']; // required
    $telephone = $_POST['telephone']; // not required
    $comments = $_POST['comments'];
     
    $error_message = "";
    $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$/';
  if(!preg_match($email_exp,$email_from)) {
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />';
  }
    
  //if(strlen($comments) < 2) {
  //  $error_message .= 'The Comments you entered do not appear to be valid.<br />';
  //}
  if(strlen($error_message) > 0) {
    died($error_message);
  }
    $email_message = "";
     
    function clean_string($string) {
      $bad = array("content-type","bcc:","to:","cc:","href");
      return str_replace($bad,"",$string);
    }
     
    $email_message .= "문의 선택 : ".clean_string($catego)."\n\n";
    $email_message .= "이름 또는 기업명 : ".clean_string($com_name)."\n\n";
    $email_message .= "연락처 : ".clean_string($telephone)."\n\n";
    $email_message .= "이메일 : ".clean_string($email_from)."\n\n";
    $email_message .= "주소 : ".clean_string($address_from)."\n\n";
    $email_message .= "소개내용 : ".clean_string($comments)."\n\n";
     
     
// create email headers
$headers = 'From: '.$email_from;
// 제목이 깨질경우 아래 캐릭터셋 적용

@mail($email_to, $email_subject, $email_message, $headers);  
?>
 
<!-- include your own success html here -->
 
<script>
alert ("메일이 발송되었습니다.\n빠른 시일안에 답변드리겠습니다.");
location.href='http://i-kit.kr/i-kit_consulting.html';
</script>
 
<?php
}
?>



html

<form name="contactform" method="post" action="./send.php">
<table>
                            <tr class="true_chk">
                                <th scope="row">
                                <label for="catego" class="form_tit">문의 항목 선택</label></th>
                                <td class="">
                                <label class="check_box_la" style="display: inline-table; margin-bottom:5px; margin: 20px;"><input type="checkbox" name="catego[]" value="지사 문의" class="radio_box">지사 문의</label>
                                <label class="check_box_la" style="display: inline-table; margin-bottom:5px;"><input type="checkbox" name="catego[]" value="판매처 문의" class="radio_box">판매처 문의</label>
                                </td>
                            </tr>
</table>
                            <input name="com_name"  type="text" class="ipt int input_name" size="30" maxlength="50" placeholder="이름 또는 기업명" required >

                            <input name="telephone"  type="text" class="ipt int input_tell" size="30" maxlength="30" placeholder="연락처" required >

                            <input name="email"  type="text" class="ipt int input_email" size="30" maxlength="80" placeholder="이메일" required >

                            <input name="address"  type="text" class="ipt int input_address" size="30" maxlength="80" placeholder="개설지역" required >

                              <textarea  name="comments" cols="50" class="tx_area int input_area" rows="5" placeholder="간단한 소개내용 또는 문의사항을 적어주세요." value=""></textarea>

                            <input type="submit" value="보내기" class="btn_submit submit_btn">

                            </form>

앞단에서.. 폼으로 파일 전달하려면.. form태그에.. enctype="multipart/form-data" 추가 되어야합니다.

<form name="contactform" method="post" action="./send.php" enctype="multipart/form-data">

 

답변을 작성하시기 전에 로그인 해주세요.
전체 14,952
QA 내용 검색
filter #php ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT