폼메일 문의 만들었는데 파일 첨부가 안됩니다.

폼메일 문의 만들었는데 파일 첨부가 안됩니다.

QA

폼메일 문의 만들었는데 파일 첨부가 안됩니다.

본문

견적문의 만들었습니다.

폼 내용은 잘 나가는데 파일 첨부에서 에러가 납니다. 메일 받아보면 파일만 안 들어옵니다.

 

에러코드 보니 다음 부분에서 에러가 나는 거 같은데 원인이 뭔지 모르겠습니다.

동일 서버에 설치된 그누4에서 잘 되는데 5에선 안되네요 ㅠㅠ

 

$file = array();

for ($i=1; $i<=$attach; $i++) {  --> 이 라인에서 에러 난다고 뜹니다.

    if ($_FILES['file'.$i]['name'])

        $file[] = attach_file($_FILES['file'.$i]['name'], $_FILES['file'.$i]['tmp_name']);

 

 

폼메일 코드는 대충..

 
<?php
include_once('./_common.php');
$g5['title'] = '견적문의'; 
include_once('./_head.php');
?>
 
<form name="fformmail" action="sendform.php" method="post" enctype="multipart/form-data">
 
<label for="mb_name">고객성명<strong class="sound_only">필수</strong></label> 
<input type="text" name="mb_name" id="mb_name" required class="frm_input required" size="30" value="<?php if($member['mb_level'] >= '2'){ ?><?php echo get_text($member['mb_name']) ?> (ID: <?php echo $member['mb_id'] ?>)<?php } ?>" />
 
<label for="company">회사명 / 근무처</label>
<input type="text" name="company" class="frm_input" size="30" />
.
.
.
.
.
.
<label for="file1">Attachments (첨부파일) 1</label>
<input type="file" name="file1" id="file1" class="frm_input">
 
<label for="file2">Attachments (첨부파일) 2</label> 
<input type="file" name="file2" id="file2" class="frm_input">
 
<input type=image id="btn_submit" src="send.gif" border="0">
 
</form>


<?php include_once('./_tail.php'); ?>

 

메일발송 코드 / sendform.php


include_once('./_common.php'); 
include_once(G5_LIB_PATH.'/mailer.lib.php');
if(empty($_POST["mb_name"])){
	alert("필수값이 넘어오지 않았습니다.\\n\\n다시 확인하십시오."); 
}


while(list($key,$val) = each($_POST)){
	if($key == "faction" || $key == "x" || $key == "y") continue;
	$arrkey[] = $key; 
	$arrval[] = $val;
}
 
$file = array();
for ($i=1; $i<=$attach; $i++) {
    if ($_FILES['file'.$i]['name'])
        $file[] = attach_file($_FILES['file'.$i]['name'], $_FILES['file'.$i]['tmp_name']);


$subject = $_POST["mb_name"] . " 님의 견적문의 폼메일";
 
$admin = get_admin('super'); 
 
ob_start(); 
include "./post.php";
$content = ob_get_contents();
ob_end_clean();
 
mailer($_POST["mb_name"], $_POST["mb_email"], "수신이메일", $subject, $content, 1, $file); 	 
 

 

 

실제 메일전송 코드 / post.php


<html><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>[<?=$subject?>]</title>
</head>
<style>
body, th, td, form, input, select, text, textarea, caption { font-size: 12px; font-family:sans-serif;}
.line {border: 1px solid #868F98;}
</style>
<body leftmargin=0 topmargin=10 marginwidth=0 marginheight=0>
<table width="95%" cellpadding=5 cellspacing=0 border=1 align="center">
<col width="20%" bgcolor="#eaeaea" style="font:bold;">
<col width="">
<tr>
	<td colspan=2 height=40 bgcolor="#ffffff">
	  <?=$subject?>
	</td>
</tr>
<? for($i=0;$i<count($arrkey);$i++){ ?>
<tr>
	<td><?=$arrkey[$i]?></td>
	<td><?echo str_replace("\r\n","<br>",stripslashes($arrval[$i]));?></td>
</tr>
<?}?>
</table></body></html>


이 질문에 댓글 쓰기 :

답변 2

for ($i=1; $i<=$attach; $i++) 에서 에러가 난다고 하셨는데

변수 i가 1부터 변수 attach값까지 for문으로 반복하는 구문인데

현재 위의 소스상에서는 변수 attach($attach) 에 대한 변수값이 없네요...?

이것부터 확인을 해보세요. 변수값이 없으니 에러가 날것 같은데요... 

다시 확인해 보니 한가지 빠진 것 같아 보입니다.

폼메일 코드에서

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

부분 다음에

<input type="hidden" name="attach" value="2">

이 소스를 추가하셔야 attach 값을 가져올 것 같네요. value값이 2인 것은 첨부파일이 2개 이기에 그렇구요.

이게 빠졌으면 그누보드 4소스에서도 안되었을텐데요??? 거기는 있는 소스인데 그누5로 변경하면서 빼 먹은게 아닌가 추측해 보고요.

post.php파일에서도 그누5는 html5 버전이므로

<html><head> 
<meta http-equiv="content-type" content="text/html; charset=utf-8">
부분을
<!doctype html>
<html>
<head>
<meta charset="utf-8">
로 수정하는 것이 바를 것 같습니다.

신경 써 주셔서 감사합니다.

아무리 해봐도 파일 첨부가 안되네요.. 텍스트는 정상적으로 발송/수신 됩니다.

그누5 기본 폼메일(사이드뷰)로 테스트 해봤는데 역시 발송 안되는게 뭐 다른 문제가 있는듯 합니다.

이상한건 같은 서버에 설치된 그누/영카트4에선 아~~~주 ㅠㅠ 잘 된다는게 이해 안되네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 59,644
QA 내용 검색

회원로그인

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