폼메일에서 파일첨부 항목 추가 어떻게 해야 할까요?ㅠㅠ

2014-07-18 (금) 08:04:23 7,186

아래의 소스(php 한개파일) 를 폼메일로 잘 사용하고 있습니다.

input type text는 잘 사용하고 있는데,  file첨부를 추가했는데, 아무런 장치 없이 input="text를 input="file"로 바꿨더니,

메일로 파일명만 가는데요, 어떻게 해야 할까요?ㅠ

(&.. 주소를 "우편번호찾기"를 통해 기입하려면 어떻게 해야 하는지도... 궁금합니다!!!)

구현되는 url은 아래와 같습니다.

http://kone-store.com/shop/form_mail.php

====================================== 원본 소스 ===========================================

파일첨부 부분은 붉게 표시되어 있습니다. (주소부분은 푸르게 표시되어 있습니다.)

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ks_c_5601-1987">
<title>보상판매</title>
<?
// ####### 폼메일 '입력양식' and '발송코드' ########
 // 이것은 바로 사용 가능한 독립된 폼메일 소스입니다.
 // 본 파일 내에서 [내용입력]->[메일발송]이 모두 완료됩니다.
 // php 파일이므로 웹서버에 직접 올려야 정상동작 합니다.

 // 메일 받는사람을 고정시키거나 추가할 수 있습니다.
 // 입력란 추가항목은 50개 이상 추가할 수 있습니다.
 // 별표(★) 표시된 설정항목 확인후 서버에 올려서 테스트 하십시오


 // [★ 설정 1] 스팸메일에 악용될 우려 때문에 기본상태는 메일발송 차단되게 되어 있으니
 // 본 파일을 실제 사용하려면 이 설정항에 'yes' 를 대입하십시오.
  $it_uses = "yes";
 // [★ 설정 2] 메일을 받을 사람을 특정인(관리자)으로 고정하려면 그 메일주소와  이름을 대입하십시오.
  $to_mail_set = "[email protected]";  // 메일주소
  $to_name_set = "KON AV";  // 이름
 // [★ 설정 3] 메일전송 완료후의 출력페이지를 지정하려면 URL 주소 대입(기본상태는 메일 입력폼이 다시 출력됨)
  $after_url="$_SERVER[PHP_SELF]";

 
 if($_POST['f_mailsend']){
  // 메일발송
   send_mail_action($to_mail_set,$to_name_set);
  // [★ 설정 4] 메일 받을 사람을 여럿 추가하려면
     send_mail_action("[email protected]","최윤희 네이트");
  // 위의 코드를 메일주소,이름만 바꿔서 여기에 반복해 넣어 주면 됨.
   alert_msg("메일발송 완료되었습니다.",$after_url);
 }

?>


 <script language=JavaScript>

  // [★ 설정 5] 입력여부 체크 - 입력확인 필요 없는 것은 삭제해도 됨
  function form_mail_submit(){

   if(no_value('mail_subject'))    return error_msg('mail_subject','제목을 입력하십시오.');
   if(no_value('mail_to_name'))    return error_msg('mail_to_name','받는사람 이름을 입력하십시오.');
   if(no_value('mail_from_name'))    return error_msg('mail_from_name','보낸사람 이름을 입력하십시오.');
   if(no_value('mail_body'))    return error_msg('mail_body','구입희망제품을 입력하십시오.');

   if(no_value('add_value_1'))    return error_msg('add_value_1','전화번호를 입력하십시오.');
   if(no_value('add_value_2'))    return error_msg('add_value_2','전화번호를 입력하십시오.');
   if(no_value('add_value_3'))    return error_msg('add_value_3','전화번호를 입력하십시오.');
   if(no_value('add_value_4'))    return error_msg('add_value_4','핸드폰번호를 입력하십시오.');
   if(no_value('add_value_5'))    return error_msg('add_value_5','핸드폰번호를 입력하십시오.');
   if(no_value('add_value_6'))    return error_msg('add_value_6','핸드폰번호를 입력하십시오.');
   if(no_value('add_value_7'))    return error_msg('add_value_7','주소를 입력하십시오.');
   if(no_value('add_value_8'))    return error_msg('add_value_8','소유제품명을 입력하십시오.');
   if(no_value('add_value_9'))    return error_msg('add_value_9','희망보상가격을 입력하십시오.');
   if(no_value('add_value_9'))    return error_msg('add_value_9','제품상태를 입력하십시오.');
   if(no_value('add_value_10'))    return error_msg('add_value_11','제품이미지1은 필수입력항목입니다.');


   if(!document.MailWriteForm.mail_to_email.value.match(/\S+@\S+\.\S+/)) return error_msg('mail_to_email','받는사람 메일주소를 확인하십시오.');
   if(!document.MailWriteForm.mail_from_email.value.match(/\S+@\S+\.\S+/)) return error_msg('mail_from_email','보낸사람 메일주소를 확인하십시오.');
   document.MailWriteForm.submit();
  }
  function no_value(inputName){
   value=eval('document.MailWriteForm.'+inputName).value.replace(/\s/g,"");
   if(!value) return 1;
  }
  function error_msg(inputName,msg){
   alert(msg);
   eval('document.MailWriteForm.'+inputName).focus();
   return false;
  }

 </script>

 <style>
 body {margin:0}
 body,table,input,textarea,select,div {font-size:12px; FONT-FAMILY: 맑은 고딕,NanumGothic,돋움,Verdana, Arial, Helvetica, sans-serif; color:#000000;}
 .tit_star { color:#9d0a0e; font-weight:bold; font-size:16px; }
 .tit_text { color:#000000; font-weight:bold; font-size:14px; }
 .td_01 { background-color:#f7f7f7; padding:10px; font-weight:bold; width:150px; height:40px; }
 .td_02 { padding:10px; width:300px; height:40px; }
 .td_03 { padding:10px; width:800px; height:40px; }
 .input_01 { border:1px solid #c6c6c6; height:26px; }
 </style>

</head>

<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">


<FORM method='post' name="MailWriteForm" action="<?=$_SERVER['PHP_SELF']?>">
 <input type=hidden name='f_mailsend' value='1'>

 <table width=100% border=0 cellpadding=1 cellspacing=1>

  <tr>
   <td colspan=4 style="background-color:#9d0a0e; padding:10px; "><span style="color:#ffffff; font-weight:bold; font-size:16px;" >보상판매 신청양식</span></td>
  </tr>

  <tr><td colspan=4 height=10 style='padding:0;'></td></tr>
  <tr><td colspan=4 height=30 style='padding:0;'><span class="tit_star">*</span> <span class="tit_text">고객정보</span></td></tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  
  <? // '설정2' 에서 메일받을 사람을 설정했다면 받는사람 이름/메일 입력칸은 출력안함
  if($to_mail_set and $to_name_set){
  echo "<input type=hidden name='mail_to_email' value='$to_mail_set'>";
  echo "<input type=hidden name='mail_to_name' value='$to_name_set'>";
  }else{
  ?>

  <tr>
   <td class="td_01">받는 사람 이름</td>
   <td><input type=text name='mail_to_name' class="input_01" style='width:150px;'></td>
   <td class="td_01">받는 사람 메일주소</td>
   <td><input type=text name='mail_to_email' class="input_01" style='width:150px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  
  <?}?>

  <tr>
   <td class="td_01">이름</td>
   <td class="td_02"><input type=text name='mail_from_name' class="input_01" style='width:150px;'></td>
   <td class="td_01">이메일</td>
   <td class="td_02"><input type=text name='mail_from_email' class="input_01" style='width:300px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">전화번호</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_1' value="전화번호1"><input type=text name='add_value_1' class="input_01" style='width:50px;'> - <input type=hidden name='add_title_2' value="전화번호2"><input type=text name='add_value_2' class="input_01" style='width:50px;'> - <input type=hidden name='add_title_3' value="전화번호3"><input type=text name='add_value_3' class="input_01" style='width:50px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">핸드폰번호</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_4' value="핸드폰번호1"><input type=text name='add_value_4' class="input_01" style='width:50px;'> - <input type=hidden name='add_title_5' value="핸드폰번호2"><input type=text name='add_value_5' class="input_01" style='width:50px;'> - <input type=hidden name='add_title_6' value="핸드폰번호3"><input type=text name='add_value_6' class="input_01" style='width:50px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">주 소</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_7' value="주소"><input type=text name='add_value_7' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>

  <tr><td colspan=4 height=30 style='padding:0;'></td></tr>
  <tr><td colspan=4 height=30 style='padding:0;'><span class="tit_star">*</span> <span class="tit_text">구입희망제품</span> 구입하고자 하는 제품의 브랜드 및 제품명을 작성해주세요.</td></tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr><td colspan=4 height=5 style='padding:0;'></td></tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">구입희망제품</td>
   <td class="td_03" colspan=3><input type=text name='mail_subject' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>

  <tr><td colspan=4 height=30 style='padding:0;'></td></tr>
  <tr><td colspan=4 height=30 style='padding:0;'><span class="tit_star">*</span> <span class="tit_text">보상판매제품</span> 보상판매하고자 하는 제품의 브랜드 및 제품명, 제품상태를 자세히 작성해주세요.</td></tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr><td colspan=4 height=5 style='padding:0;'></td></tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">소유제품명</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_8' value="소유제품명"><input type=text name='add_value_8' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">희망보상가격</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_9' value="희망보상가격"><input type=text name='add_value_9' class="input_01" style='width:150px;'> 원</td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">제품상태</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_10' value="제품상태"><input type=text name='add_value_10' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">제품이미지 01</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_11' value="품이미지 01"><input type=file name='add_value_11' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">제품이미지 02</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_12' value="품이미지 02"><input type=file name='add_value_12' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">제품이미지 03</td>
   <td class="td_03" colspan=3><input type=hidden name='add_title_13' value="품이미지 03"><input type=file name='add_value_13' class="input_01" style='width:810px;'></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>
  <tr>
   <td class="td_01">남기고 싶은말</td>
   <td class="td_03" colspan=3><textarea name='mail_body' style="border:1px solid #aaaaaa; width:100%; height:150px; overflow:auto; background-image:url('wrback.gif'); line-height:150%;"></textarea></td>
  </tr>
  <tr><td colspan=4 height=1 style='background-color:#eeeeee;'></td></tr>

  <tr><td colspan=4 height=80 style="text-align:center;"><!--- 전송버튼 ---><a onclick="javascript:form_mail_submit()" style='cursor:pointer;'><img src="http://kone-store.com/shop/data/skin/treashya/board/default/img/board_btn_write.gif" border=0></a></td></tr>


  <tr><td colspan=4 height=5 style='padding:0;'></td></tr>

  <!--- 본문 입력란 --->
  <tr>
   <td colspan=4 align=center></td>
  </tr>

 </table>

 <br>

</FORM>


<?


// 메일내용 html 구성
function mail_body_html($body){

 $join_html= <<<EOF_LINE


 <html>
  <head>
  <meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
  <style type=text/css>
   body,td,input,div,select,textarea{font-size:9pt; font-family:굴림,Tahoma; line-height:140%; word-break:break-all;}
  </style>
  </head>

  <body bgcolor='#ffffff' topmargin=5>


   <table width=90% border=1 cellspacing=0 cellpadding=1 frame=void bordercolordark='#ffffff' bordercolorlight='#eeeeee' style='margin-bottom:8px;'>
    <tr><td width=120><b>ㆍ</b>보낸사람</td><td> $_POST[mail_from_name]  &lt;$_POST[mail_from_email]&gt;</td></tr>
    <tr><td width=120><b>ㆍ</b>받은사람</td><td> $_POST[mail_to_name]  &lt;$_POST[mail_to_email]&gt;</td></tr>

EOF_LINE;

   // 추가입력란 삽입
   for($i=1; $i<50; $i++){ // 입력추가항목이 50개 이상 된다면 '50'을 수정할것
    if(!$_POST['add_title_'.$i]) continue;
    $title=$_POST['add_title_'.$i];  $value=$_POST['add_value_'.$i];
    $join_html.="
      <tr>
       <td width=120><b>ㆍ</b>$title</td><td> $value</td>
      </tr>
     ";
   }

 $join_html.= <<<EOF_LINE

   </table>

   <table width=90% cellpadding=0 cellspacing=0 border=0 bgcolor='#ffffff' style='border:1px solid #1578FF;'>
    <tr><td height=1 bgcolor='#A9CDFF'></td></tr>
    <tr><td height=1 bgcolor='#67A7FF'></td></tr>
    <tr>
     <td bgcolor='#1578FF' style='padding:2px; padding-left:6px; color:#ffffff; font-weight:bold;'>
      &nbsp; $_POST[mail_subject]
     </td>
    </tr>
    <tr><td height=1 bgcolor='#67A7FF'></td></tr>
    <tr><td height=1 bgcolor='#A9CDFF'></td></tr>
    <tr><td height=1 bgcolor='#1578FF'></td></tr>
    <tr>
     <td style='padding:5px'>
      <!--메일 본문 내용-->
      $body
     </td>
    </tr>
   </table>

  </body>
 </html>

EOF_LINE;

 return $join_html;

}


function send_mail_action($snd_mail,$snd_name){
 if($GLOBALS['it_uses'] != 'yes') alert_msg("메일발송 실패 했습니다. 소스내의 '설정항목1' 을 우선 확인하십시오.");

 if($snd_mail) $_POST['mail_to_email'] = $snd_mail;
 if($snd_name) $_POST['mail_to_name'] = $snd_name;

 if(!org_mail($_POST['mail_to_email'])) alert_msg('받는 사람 메일주소가 잘못 되었습니다.');
 if(!org_mail($_POST['mail_from_email'])) alert_msg('메일주소가 잘못 되었습니다.');

 if(!$_POST['mail_subject']) alert_msg('구입희망제품을 입력하십시오.');
 if(!$_POST['mail_to_name']) alert_msg('받는사람 이름을 입력하십시오.');
 if(!$_POST['mail_from_name']) alert_msg('이름을 입력하십시오.');

 if(!$_POST['mail_body']) alert_msg('본문 내용을 입력하십시오.');

 $mail_to = "\"$_POST[mail_to_name]\" <$_POST[mail_to_email]>";
 $mail_from = "\"$_POST[mail_from_name]\" <$_POST[mail_from_email]>";

 $head  = "From:$_POST[mail_from_email]\n";
 $head .="Content-Type: text/html\n";
 $head .="Reply-To:$_POST[mail_from_email]\n";
 $head .="X-Mailer:PHP/".phpversion();

 $body=nl2br($_POST['mail_body']);
 $body=stripslashes($body);
 $body=mail_body_html($body);

 return @mail($mail_to,$_POST['mail_subject'],$body,$head);
}


function org_mail($mail){
 if(!preg_match("/\S+@(\S+\.\S+)/",$mail,$Tmp)) return ;
 // if(!checkdnsrr($Tmp[1], "MX") and !checkdnsrr($Tmp[1], "A")) return ;
 return 1;
}


function alert_msg($msg,$after_url=""){
 $msg=preg_replace("/\"/","'",$msg);
 echo " <script language='JavaScript'> alert(\"$msg\"); ";
 if($after_url) echo " location.href='$after_url'; ";
 else echo " history.go(-1); ";
 echo "</script>";
 exit;
}

?>

</body>

</html>​

|

답변 2개

2014-07-18 (금) 22:03:46

기존 항목에서 연결된 변수나 인클루드된곳을 찾아서 편집하시면되겠네요

<FORM method='post' name="MailWriteForm" action="<?=$_SERVER['PHP_SELF']?>" enctype="multipart/form-data"​>​

 

 

답변을 작성하려면 로그인이 필요합니다.