html 폼메일php 연결하기
본문
안녕하세요. 웹 관련 초보자 입니다ㅠㅠ.
html에 php를 연결시켜 메일을 보낼 수 있도록 해야해서, 인터넷에 찾아 집어넣었습니다.
전송 버튼을 누르면 그냥 흰바탕이 뜨면 send.php주소로 넘어가고 아무런 작동을 하지 않습니다. 어떤 점이 잘못된건지 조언 부탁드려도 될까요?
contact.html
<body>
<form name="contactform" method="post" action="send.php" id="mail_form">
<div class="form_1 cf">
<ul>
<li>
<label for="first_name">Name</label>
</li>
<li>
<input type="text" name="first_name" class="first_name" minlength="1" maxlength="50" required >
<!-- maxlegth는 최대 문자수 -->
</li>
</ul>
<ul>
<li>
<label for="form_tel">Tel</label>
</li>
<li>
<input type="form_tel" name="form_tel" class="form_tel" maxlength="80" required >
</li>
</ul>
</div>
<div class="form_2 cf">
<ul>
<li>
<label for="form_fax">Fax</label>
</li>
<li>
<input type="form_fax" name="form_fax" class="form_fax" maxlength="80" required >
</li>
</ul>
<ul>
<li>
<label for="form_email">Email</label>
</li>
<li>
<input type="form_email" name="form_email" class="form_email" maxlength="80" required >
</li>
</ul>
</div>
<ul class="f-address">
<li>
<label for="form_address">Address</label>
</li>
<li>
<input type="form_address" name="form_address" class="form_address" maxlength="80" required >
</li>
</ul>
<ul>
<li>
<label for="comments">Inquiry</label>
</li>
<li>
<textarea name="comments" cols="50" rows="10" required class="comments" style="resize:none;"></textarea>
</li>
</ul>
<ul class="formmail_submit">
<li class="cf">
<button type="submit" value="전송하기" class="btn_submit">Send</button>
<button name="재설정" type="reset" value="다시작성" class="btn_submit">Rewrite</button>
</li>
</ul>
</form>
</body>
send.php
<?
$tomail = "*** 개인정보보호를 위한 이메일주소 노출방지 ***";
function error($text){
echo "
<script language=javascript>
window.alert('$text')
history.go(-1)
<script>";
exit;
}
function msg($text){
echo "
<script language=javascript>
window.alert('$text')
top.location.href = 'contact.html'
<script>";
exit;
}
if (!$first_name) {error('Please Write Your Name.');}
if (!$form_tel) {error('Please Write Your Tel.');}
if (!$form_fax) {error('Please Write Your Fax.');}
if (!$form_email) {error('Please Write Your Email.');}
if (!$form_address) {error('Please Write Your Address.');}
if (!$comments) {error('Please Write Inquiry.');}
$mailheaders = "Return-Path: $email |r|n";
$mailheaders .= "From: $name <$email>|r|n";
$body = "이름: $first_name |r|n";
$body = "전화번호: $form_tel |r|n";
$body = "팩스: $form_fax |r|n";
$body = "이메일: $form_email |r|n";
$body = "주소: $form_address |r|n";
$body = "내용: $comments |r|n";
$result=mail($tomail, $body, $mailheaders);
if($result) {
msg('Mail has been sent successfully.');
}
else {
error('The mail has failed to send.');
}
?>
답변 2
1. <? → <?php 추천
2. send.php 파일 내용을 아래처럼 변경하고, 폼에서 입력한 값이 뜨는지 확인부터 해보세요.
Input values = <?php print_r($_POST);
3. 옛날 방식의 변수라 그렇습니다. 2번에 적은 변수를 사용해야 합니다.
$first_name → $_POST['first_name'] // 또는 $_REQUEST['first_name'] (특성 이해하고 사용)
4. |r|n → \r\n
!-->!-->경로가 올바른지 체크하시고
해당 send.php 파일의 소스를 점검해보셔야 할듯합니다.
답변을 작성하시기 전에 로그인 해주세요.