폼메일 발송이 안되요. 도와주세요.
본문
form.php 파일
<form id="form1" name="contactform" class="container" method="post" action="send.php">
<table>
<tr>
<td class="type_wrap" colspan="2">
<input id="type1" name="type1" type="checkbox" value="전화 상담"><label for="type1">전화 상담</label>
<input id="type2" name="type2" type="checkbox" value="이메일 상담"><label for="type2">이메일 상담</label>
</td>
</tr>
<tr>
<td>
<input id="name" name="name" type="text" maxlength="40" placeholder="상호명"> <!-- name 부분이 form_send.php에서 $name 으로 전송된다. -->
</td>
<td>
<input id="name2" name="name2" type="text" maxlength="40" placeholder="담당자">
</td>
</tr>
<tr>
<td>
<input id="number" name="number" type="text" maxlength="40" placeholder="연락처">
</td>
<td>
<input id="email" name="email" type="text" maxlength="100" placeholder="이메일">
</td>
</tr>
<tr>
<td colspan="2">
<textarea id="question" name="question" type="text" maxlength="400" placeholder="문의 내용"></textarea>
</td>
</tr>
<tr>
<td class="agree_wrap" colspan="2">
<input type="checkbox" name="agree" id="agree" value="개인정보 취급 동의"><label for="agree">개인정보 수집동의</label>
</td>
</tr>
</table>
<input type="submit" id="submit" value="문의 하기" onclick="form_Check();" >
<script type="text/javascript">
function form_Check(){
if(form1.name.value == ''){
alert("상호명을 입력해주십시오.");
form1.name.focus();
return;
}
if(form1.name2.value == ''){
alert("담당자를 입력해주십시오.");
form1.name.focus();
return;
}
if(form1.number.value == ''){
alert("연락처를 입력해주십시오.");
form1.hp1.focus();
return;
}
if(form1.email.value == ''){
alert("이메일주소를 입력해주십시오.");
form1.email.focus();
return;
}
if(form1.question.value == ''){
alert("문의사항을 입력해주십시오.");
form1.email.focus();
return;
}
var agree = document.getElementById("agree");
if(!agree.checked) {
alert("개인정보수집에 동의 하셔야 합니다.");
agree.focus();
return false;
}
if(!confirm('폼메일을 전송하겠습니까?')) return;
}
</script>
</form>
send.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('Failed to send mail.');";
echo "history.go(-1);";
echo "</script>";
die();
}
// input추가시 추가 start
if(!isset($_POST['type1']) || //전화 상담
!isset($_POST['type2']) || //이메일 상담
!isset($_POST['name']) || //상호명
!isset($_POST['name2']) || //담당자
!isset($_POST['number']) || //연락처
!isset($_POST['email']) || //이메일
!isset($_POST['question'])) {
died('We are sorry, but there appears to be a problem with the form you submitted.');
}
// input추가시 추가 start
$type1 = $_POST['type1']; // required
$type2 = $_POST['type2']; // required
$name = $_POST['name']; // required
$name2 = $_POST['name2']; // required
$number = $_POST['number']; // required
$email_from = $_POST['email']; // required
$question = $_POST['question']; // required
$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);
}
//* input추가시 추가 start
$email_message .= "상호명 : ".clean_string($name)."\n\n";
$email_message .= "담당자 : ".clean_string($name2)."\n\n";
$email_message .= "연락처 : ".clean_string($number)."\n\n";
$email_message .= "이메일 : ".clean_string($email_from)."\n\n";
$email_message .= "문의 내용 : ".clean_string($question)."\n\n";
$email_message .= "상담 방법 : ".clean_string($type1)."\n\n";
$email_message .= "상담 방법 : ".clean_string($type2)."\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 ("빠른 시일 내에 답변을 보내드리겠습니다.");
location.href='index.php';//돌아갈 폼메일 링크로
</script>
<?php
}
?>
!-->!-->
답변 2
if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } 에서
$comments 변수가 어디에서도 선언되어 있지 않은데 사용되고 있어 died()함수가 호출되고 있습니다.
위 부분을 주석처리하거나 삭제후 시도해 보시죠.
$email_to 변수에 담기는 내용이 잘못된거 같습니다.
답변을 작성하시기 전에 로그인 해주세요.