폼메일 발송후 특정 사이트 이동 방법 여쭤봅니다 ㅜㅜ
본문
==== HTML ====
<!DOCTYPE html>
<html lang="ko">
<head>
<!-- charset 설정 -->
<meta charset="UTF-8">
<!-- ie 호환성보기 무시 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- 모바일을 위한 viewport설정 -->
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
<title>폼메일 소스</title>
<style>
.contact_form input[type=text],
.contact_form select,
.contact_form textarea,
.contact_form input[type=email],
.contact_form input[type=tel] {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
margin-top: 6px;
margin-bottom: 16px;
resize: vertical;
}
.contact_form>h3 {
text-align: center;
}
.contact_form textarea {
height: 200px;
resize: none;
}
.contact_form input[type=submit] {
background-color: #737373;
color: white;
padding: 12px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
transition: 0.3s;
}
.contact_form input[type=submit]:hover {
background-color: #aaa;
}
.contact_form {
width: 90%;
margin: 0 auto;
margin-top: 50px;
border-radius: 5px;
padding: 20px;
}
.contact_form>h3 {
font-size: 30px;
padding-bottom: 50px;
}
</style>
</head>
<body>
<!-- 폼태그 -->
<section class="contact_form" id="contact_form">
<h3>Contact Form</h3>
<form action="data.php" method="post">
<label for="name">이름 (필수)</label>
<input type="text" id="name" name="name" placeholder="이름" required>
<label for="email">이메일 (필수)</label>
<input type="email" id="email" name="email" placeholder="이메일" required>
<label for="phone">전화번호 (필수)</label>
<input type="tel" id="phone" name="phone" placeholder="전화번호" required>
<label for="message">문의내용 (필수)</label>
<textarea id="message" name="message" placeholder="문의내용" required></textarea>
<input type="submit" value="보내기">
</form>
</section>
</body>
</html>
==== PHP =======
<?php
header("Content-Type: text/html; charset=UTF-8");
// 빈 필드가 있는지 확인하는 구문
if(empty($_POST['name']) || // post로 넘어온 name값이 비었는지 확인
empty($_POST['email']) || // email값이 비었는지 확인
empty($_POST['phone']) || // phone값이 비었는지 확인
empty($_POST['message']) || // message값이 비었는지 확인
!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) // 전달된 이메일 값이 유효한 이메일값인지 검증
{
echo "인수를 확인해주세요!";
return false;
}
// Cross-Site Scripting (XSS)을 방지하는 시큐어코딩
// strip_tags() -> 문자열에서 html과 php태그를 제거한다
// htmlspecialchars() -> 특수 문자를 HTML 엔터티로 변환
// 악의적인 특수문자 삽입에 대비하기 위함
$name = strip_tags(htmlspecialchars($_POST['name']));
$email_address = strip_tags(htmlspecialchars($_POST['email']));
$phone = strip_tags(htmlspecialchars($_POST['phone']));
$message = strip_tags(htmlspecialchars($_POST['message']));
// 이메일을 생성하고 메일을 전송하는 부분
$to = '*** 개인정보보호를 위한 이메일주소 노출방지 ***'; // 받는 측의 이메일 주소를 기입하는 부분
$email_subject = "FROM: $name"; // 메일 제목에 해당하는 부분
$email_body = "파트너 신청 요청이 있습니다..\n\n"."세부정보는 다음과 같습니다.\n\n업체명 : $name\n\n이메일 : $email_address\n\n전화 : $phone\n\n담당자명/세부내용 : $message";
$headers = "Reply-To: $email_address\r"; // 답장 주소
mail($to,'=?UTF-8?B?'.base64_encode($email_subject).'?=',$email_body,$headers);
return true;
?>
======================
여기저기 찾아봤는데 소스가 조금씩 달라서 뭔가 잘 안맞아요 ㅜㅜ
만약 폼메일 전송하고 "naver.com" 으로 이동하고 싶다면?
어디를 어떻게 고쳐야 할지 모르겠어요 ㅜㅜ
답변 1
위 php가 전체 소스인가요???
전체 소스라면 조금 이상합니다. 함수가 아닌데 일반 평문에 return 이 있거든요.
retun 을 지우시고 거기다가 다음 코드를 삽입하세요.
echo "<script>
document.location.href='도메인';
</script>";
!-->