2017-03-15 3 views
0

내 웹 사이트 (템플릿)에서 다음 연락처 양식을 구현했으며 이메일 메시지를 성공적으로 보내고받을 수 있지만 메시지 부분 (사용자 텍스트)은 다음과 같습니다. 내받은 편지함에 수신되지 않았습니다. 이름과 보낸 사람 전자 메일은 수신하지만 메시지 내용은 수신하지 않습니다.Contact.php는 문자 메시지를 보내지 만 문자 메시지는 보내지 않고

screenshot from the website form

누군가의 도움이 발견하고 문제를 해결을 할 수 있습니까? PHP, jQuery 또는 html이 잘못 되었습니까?

HTML :

<form action="contact.php" class="contact_form" id="form" method="post"> 
       <div class="col-lg-6 col-md-6 col-lg-offset-3 col-md-offset-3"> 
        <span class="input input_name"> 
         <input class="input__field" type="text" name="name" id="name" required/> 
         <label class="input__label" for="name"> 
         <span class="input__label_content">Name</span> 
         </label> 
        </span> 
        <span class="input input_website"> 
         <input class="input__field" type="url" name="website" id="website" /> 
         <label class="input__label" for="website"> 
         <span class="input__label_content">Website</span> 
         </label> 
        </span> 
        <span class="input input_mail"> 
         <input class="input__field" type="email" name="email" id="email" required/> 
         <label class="input__label" for="email"> 
         <span class="input__label_content">email</span> 
         </label> 
        </span> 
       </div> 
       <div class="col-lg-8 col-md-8 col-lg-offset-2 col-md-offset-2"> 
        <span class="textarea"> 
         <textarea class="textarea_field" name="textarea" id="textarea" rows="4" placeholder="type your text here . . . ."></textarea> 
        </span> 
        <span class="submit"> 
         <button type="submit" class="rms-btn submit_btn" id="submit">submit request <span><i class="fa fa-pencil"></i></span></button> 
        </span> 
       </div> 
      </form> 

contact.php :

<?php 
/* 
* Ajax form submit 
*/ 

# request sent using HTTP_X_REQUESTED_WITH 
if(isset($_SERVER['HTTP_X_REQUESTED_WITH'])){ 
     if (isset($_POST['name']) AND isset($_POST['email']) AND isset($_POST['textarea'])) { 
       $to = '[email protected]'; /* Add your contact email address here */ 

       $name = filter_var($_POST['name'], FILTER_SANITIZE_STRING); 
       $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); 
       $subject = filter_var($_POST['subject'], FILTER_SANITIZE_STRING); 
       $message = filter_var($_POST['textarea'], FILTER_SANITIZE_STRING); 
       $sent = email($to, $email, $name, $message); 
       if ($sent) { 
         echo 'Message sent!'; 
       } else { 
         echo 'Message couldn\'t sent!'; 
       } 
     } 
     else { 
       echo 'All Fields are required'; 
     } 
     return; 
} 

/** 
* email function 
* 
* @return bool | void 
**/ 
function email($to, $from_mail, $from_name, $subject, $message){ 
     $header = array(); 
     //$header[] = "MIME-Version: 1.0"; 
     $header[] = "From: {$from_name} < {$from_mail}>"; 
     $header[] = "Message: {$message}"; 
     /* Set message content type HTML*/ 
     /*$header[] = "Content-type:text/html; charset=iso-8859-1";*/ 
     /*$header[] = "Content-Transfer-Encoding: 7bit";*/ 
     if(mail($to, $message, implode("\r\n", $header))) return true; 
} 

?> 

contact.js

jQuery(document).ready(function() { 
    var form = jQuery('#form'); // contact form 
    var submit = jQuery('#submit'); // submit button 
    var alert = jQuery('.alert'); // alert div for show alert message 

    // form submit event 
    form.on('submit', function(e) { 
     e.preventDefault(); // prevent default form submit 
     // sending ajax request through jQuery 
     jQuery.ajax({ 
      url: 'contact.php', // form action url 
      type: 'POST', // form submit method get/post 
      dataType: 'html', // request type html/json/xml 
      data: form.serialize(), // serialize form data 
      beforeSend: function() { 
       alert.fadeOut(); 
       submit.html('Sending....'); // change submit button text 
      }, 
      success: function(data) { 
       alert.html(data).fadeIn(); // fade in response data 
       form.trigger('reset'); // reset form 
       submit.html('Email Sent <span> <i class="fa fa-check"></i> </span>'); // reset submit button text 
      }, 
      error: function(e) { 
       console.log(e) 
      } 
     }); 
    }); 
}); 

감사합니다!

답변

0

$message = filter_var($_POST['textarea'], FILTER_SANITIZE_STRING); 

편집과

$message = filter_var($_POST['message'], FILTER_SANITIZE_STRING); 

교체 : 또한이 라인은 의문이다 : 이름 subject 아무 필드가 없습니다

$subject = filter_var($_POST['subject'], FILTER_SANITIZE_STRING); 

.

+0

contact.php 양식을 업데이트했지만 여전히 동일한 문제가 발생합니다. 대답 해줘서 고마워요. –

0

텍스트 영역의 이름은 'textarea'이고, PHP 파일에서는 $_POST['message']입니다. $_POST['textarea'] 나는 텍스트 영역과 같은

+0

contact.php 양식을 업데이트했지만 어쨌든 여전히 동일한 문제가 있습니다. 대답 해줘서 고마워요. –

+0

메일 기능을 확인하십시오. docs : http://php.net/manual/en/function.mail.php'$ subject'는'$ message' 전에 설정해야합니다. – gmc

0

에 '메시지'또는 $_POST['message']에 텍스트 영역의 이름을 변경하여 양식의 이름 textarea,하지만 당신은 message라는 POST 변수를 참조한다.