2013-06-30 3 views
0

템플릿을 사용하여 내 웹 사이트를 만들었습니다.이 템플릿은 연락처 페이지와 양식이 모두 제공되었지만 PHP 연락처 스크립트가 없으므로 작성하고 설정했습니다 html 양식에 대한 조치로 여전히 내 이메일에 아무 것도 보내지 않을 것입니다 ... Gmail을 통해 설정 한 메일 (도메인 메일 교환 DNS를 Gmail 설정으로 변경 함) html 문의 양식에 있습니다. 다음 코드를HTML 형식의 PHP 스크립트가 메일을 보내지 않음

<?php 
$to = '[email protected]'; 
$to .= '[email protected]'; 

// Assigning data from the $_POST array to variables 
$name = $_post['sender_name']; 
$email = $_post['sender_email']; 
$subject = $_post['sender_subject']; 
$text = $_post['sender_text']; 

// Construct email subject 
$content = 'www.jamesreborne.co.uk Message from visitor ' . $name; 

// Construct email body 
$body_message = 'From: ' . $name . "\r\n"; 
$body_message .= 'E-mail: ' . $email. "\r\n"; 
$body_message .= 'Subject: ' . $subject . "\r\n"; 
$body_message .= 'Message: ' . $text; 

// Construct email headers 
$headers = 'From: ' . $email . "\r\n"; 
$headers .= 'Reply-To: ' . $email . "\r\n"; 

mail($to, $content, $body_message, $headers); 

$mail_sent = mail($to, $content, $body_message, $headers); 

if ($mail_sent == true){ ?> 
    <script language="javascript" type="text/javascript"> 
    alert('Thank you for the message. We will contact you shortly.'); 
    window.location = 'contact.html'; 
    </script> 
<?php } 

else { ?> 
<script language="javascript" type="text/javascript"> 
    alert('Message not sent. Please, notify the site administrator [email protected]'); 
    window.location = 'contact.html'; 
</script> 
<?php 
} 
?> 
:

<div id="contact_form"><form method="post" name="contact" action="contact-form-handler.php">       
<label for="name">Name:</label> <input type="text" id="name" name="name" class="required input_field" /><div class="cleaner h10"></div> 
<label for="email">Email:</label> <input type="text" id="email" name="email" class="validate-email required input_field" /><div class="cleaner h10"></div>      
<label for="subject">Subject:</label> <input type="text" name="subject" id="subject" class="input_field" /><div class="cleaner h10"></div>  
<label for="text">Message:</label> <textarea id="text" name="text" rows="0" cols="0" class="required"></textarea><div class="cleaner h10"></div>      
<input type="submit" value="Send" id="submit" name="submit" class="submit_btn float_l" /> 
<input type="reset" value="Reset" id="reset" name="reset" class="submit_btn float_r" /> 
</form> 

과 접촉 폼 handler.php는 HTML 양식을 처리하기 위해 울부 짖는이 코드를 포함

사람이 그 좋은 것 도울 수 있다면, 감사

답변

0
$subject = $_POST['subject']; 
$text = $_POST['text']; 

또한 이름과 이메일에 대한 양식 필드가 없습니다. 그것을 추가하십시오.

+0

답장을 보내 주셔서 감사합니다 ... 이름과 이메일을 추가했지만 질문을 게시 할 때 형식이 올바르지 않습니다. 나는 $ subject = $ _post [ 'subject']도 변경했다. ~ $ subject = $ _POST [ '제목']; 또한 텍스트와 여전히 성공하지 못했습니다. 더 이상 아이디어가 없습니까? –

0

수신자의 전자 메일을 설정하는 부분에도 오류가 있습니다. 즉, 변수가 [email protected]@gmail.com이되도록 분리되지 않았습니다. 그것은해야 나를보기 다음과 같습니다 :

<?php 
$to = '[email protected]'; 
$to .= ', [email protected]'; 
0
문자열로 $ 잘못된 방법으로 두 개의 이메일을 추가 첫째

, 그것은해야한다 :

$to = '[email protected], '; 
    $to .= '[email protected]'; 

을 당신이 늘 제목과 메시지 값을 얻을 수정하더라도 . AFAIK $ _POST는 case sensetive입니다 (잘못하면 수정하십시오). 따라서 $ _POST가 아닌 $ _POST로 만들어야합니다.

그러면 HTML 양식과 PHP 코드의 입력 이름이 일치하지 않습니다. 그들은해야합니다 :

$name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $text = $_POST['text']; 

형태의 입력 필드는 다음

$subject = $_POST['subject'];

하지 될 경우

$subject = $_POST['sender_subject']; 

편집 : 당신은 여전히 ​​

를 받고 있지 않은 경우 이메일을 보내면 서버에 ma가 없을 수 있습니다. il 서버이 설치되어 있어야합니다. postfix을 설치하고 사용해보세요.

+0

감사합니다. 위의 내용을 수정했으나 여전히 메일을 보내지 않고 스팸 폴더를 확인했지만 실망 상태입니다. 나는 그 밖의 무엇을 시도 해야할지 모르겠다. 감사. –

+0

로컬 호스트 또는 프로덕션 서버에 있습니까? localhost라면 postfix (또는 다른 메일 서버)를 설치해야 전자 메일을받을 수 있습니다. –

+0

프로덕션 서버에서도 메일 서버가 설치되어 있지 않으면 설치해야합니다. 나는 내 컴퓨터에서 이메일을 전송했는지 확인했다. 그래서 나는 메일 서버에 문제가 있다고 확신한다. –

관련 문제