미채택 완료

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

견적문의 만들었습니다.

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

 

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

동일 서버에 설치된 그누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']);

 

 

폼메일 코드는 대충..

Copy
<?phpinclude_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

Copy
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

Copy
<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개 / 댓글 2개

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

폼메일 코드에서

<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">
로 수정하는 것이 바를 것 같습니다.

답변에 대한 댓글 1개

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

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

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

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

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

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

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

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

답변에 대한 댓글 1개

for ($i=1; $i<=count($_FILES); $i++)

이렇게 바꿔봐도 안되는군요.. 이 코드로 그누4 에선 아주 잘 됩니다 ㅠㅠ

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