2016-10-12 8 views
0

Я пытаюсь отправить электронное письмо на учетную запись пользователя, используя php mail() function.The письмо отправлено успешно, но проблема в том, что он отправляет мне пустые письма без каких-либо значений в них! Код для страницы контактов, который отправляет электронную почту следующим образом: -Функция отправки почты пустые значения

<form class="contact-form" method="POST" action="sendemail.php"> 
        <div class="row-fluid"> 
        <div class="span5"> 
         <label>First Name</label> 
         <input type="text" class="input-block-level" required="required" placeholder="Your First Name" name="name"> 
         <label>Last Name</label> 
         <input type="text" class="input-block-level" required="required" placeholder="Your Last Name" name="lname"> 
         <label>Email Address</label> 
         <input type="text" class="input-block-level" required="required" placeholder="Your email address" name="email"> 
        </div> 
        <div class="span7"> 
         <label>Message</label> 
         <textarea name="message" id="message" required="required" class="input-block-level" rows="8" name="message"></textarea> 
        </div> 

       </div> 
       <input type="submit" class="btn btn-primary btn-large pull-right" value="Send Message" /> 
       <p> </p> 

      </form> 

и sendemail.php код страницы выглядит следующим образом:

<?php 
    header('Content-type: application/json'); 
    $status = array(
     'type'=>'success', 
     'message'=>'Email sent!' 
    ); 

    $name = @trim(stripslashes($_POST['name'])); 
    $email = @trim(stripslashes($_POST['email'])); 
    $subject = "An enquiry sir"; 
    $message = @trim(stripslashes($_POST['message'])); 

    $email_from = $email; 
    $email_to = '[email protected]'; 

    echo $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; 

    $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); 

    echo json_encode($status); 
    die; 
    ?> 

Почему выход я получаю пустой в мой электронный идентификатор , например:

Имя:

Email:

Тема:

Сообщение:

P.N: Я использую здесь шаблон темы новы.

форма представляется с помощью AJAX, используя следующий JavaScript:

var form = $('.contact-form'); 
form.submit(function() { 
    $this = $(this); 
    $.post($(this).attr('action'), function(data) { 
    $this.prev().text(data.message).fadeIn().delay(3000).fade‌​Out(); 
    },'json'); 
    return false; 
}); 
+0

Является 'sendemail.php' также сценарий, который отображает форму? – Barmar

+1

Форма отправляется с пустыми вводами? Попробуйте 'isset ($ _ POST ['name'])' etc ... – AbraCadaver

+0

@Barmar no sir это другой скрипт –

ответ

-3

Удалите echo от линии, которая определяет $ тело От этого ...

echo $body = 'Name: ' . $name . "\n\n" . 'Email 

к этому .. .

$body = 'Name: ' . $name . "\n\n" . 'Email 
+2

Зачем это помогло? Он присваивает переменную, а затем эхо-сигнал. – Barmar

+0

varables не получают назначенные, только определенные строки ... В скрипте также есть вызов заголовка, и эхо-сигнал приведет к тому, что результат уже запущен. –

+0

'echo $ var = value;' такое же, как '$ var = value; echo $ var; '. – Barmar

0

Код представления формы не отправляет t он формирует данные. Вот код, который вы при условии:

var form = $('.contact-form'); 
form.submit(function() { 
    $this = $(this); 
    $.post($(this).attr('action'), function(data) { 
    $this.prev().text(data.message).fadeIn().delay(3000).fade‌​Out(); 
    },'json'); 
    return false; 
}); 

и это то, что оно должно быть:

var form = $('.contact-form'); 
form.submit(function() { 
    $this = $(this); 
    $.post($(this).attr('action'), $(this).serialize(), function(data) { 
    $this.prev().text(data.message).fadeIn().delay(3000).fade‌​Out(); 
    },'json'); 
    return false; 
}); 
Смежные вопросы