폼메일에서 파일첨부 항목 추가 어떻게 해야 할까요?ㅠㅠ
아래의 소스(php 한개파일) 를 폼메일로 잘 사용하고 있습니다.
input type text는 잘 사용하고 있는데, file첨부를 추가했는데, 아무런 장치 없이 input="text를 input="file"로 바꿨더니,
메일로 파일명만 가는데요, 어떻게 해야 할까요?ㅠ
(&.. 주소를 "우편번호찾기"를 통해 기입하려면 어떻게 해야 하는지도... 궁금합니다!!!) 구현되는 url은 아래와 같습니다.
http://kone-store.com/shop/form_mail.php">http://kone-store.com/shop/form_mail.php
====================================== 원본 소스 ===========================================
파일첨부 부분은 붉게 표시되어 있습니다. (주소부분은 푸르게 표시되어 있습니다.)
// 메일 받는사람을 고정시키거나 추가할 수 있습니다. // 입력란 추가항목은 50개 이상 추가할 수 있습니다. // 별표(★) 표시된 설정항목 확인후 서버에 올려서 테스트 하십시오
// [★ 설정 1] 스팸메일에 악용될 우려 때문에 기본상태는 메일발송 차단되게 되어 있으니 // 본 파일을 실제 사용하려면 이 설정항에 'yes' 를 대입하십시오. $it_uses = "yes"; // [★ 설정 2] 메일을 받을 사람을 특정인(관리자)으로 고정하려면 그 메일주소와 이름을 대입하십시오. $to_mail_set = "treashya@naver.com"; // 메일주소 $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("treashya@nate.com","최윤희 네이트"); // 위의 코드를 메일주소,이름만 바꿔서 여기에 반복해 넣어 주면 됨. alert_msg("메일발송 완료되었습니다.",$after_url); }
?>
// [★ 설정 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; }
// 메일내용 html 구성 function mail_body_html($body){
$join_html= <<
| ㆍ보낸사람 | $_POST[mail_from_name] <$_POST[mail_from_email]> |
| ㆍ받은사람 | $_POST[mail_to_name] <$_POST[mail_to_email]> |
| ㆍ$title | $value |
| $_POST[mail_subject] |
| $body |
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 " "; exit; }
?>
답변 2개
답변을 작성하려면 로그인이 필요합니다.
로그인