2015-04-09 2 views
1

Это мой первый пост, поэтому, пожалуйста, извините меня, если я не использую форматирование кода правильно. Кроме того, PHP не моя сильная сторона.PHP и HTML Mailer отправляет только один параметр в теле

Я пытаюсь отправить пользовательскую электронную почту с помощью HTML и PHP. Я получил электронное письмо для успешной отправки, но у меня проблемы с телом электронной почты. Только номер телефона заполняет электронную почту, ничего больше, а не имя, адрес электронной почты или сообщение. Есть идеи?

Я знаю, что параметры заполняются. Я просматриваю страницу и просматриваю сетевые события через Firebug в Firefox. Параметры передаются PHP, я достаточно уверен.

//building message body 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 

//adding to the body variable 
$body = "Name: " + $name + "\r\n" + "E-mail: " + $email + "\r\n" + "Phone: " + $phone + "\r\n" + "Message: " + $message + "\r\n"; 

//email info 
$to = '[email protected]'; 
$subject = 'You have been contacted via the web form!'; 
$from = '[email protected]'; 


mail($to, $subject, $body); 

<!-- Mailer --> 
 
<form role="form" method="post" action="mail/contact_me.php"> 
 
    <div class="row"> 
 
    <div class="col-md-6"> 
 
     <div class="form-group"> 
 
     <input type="text" data-validation-required-message="Please enter your name." required="" id="name" name="name" placeholder="Your Name *" class="form-control" value=""> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
     <div class="form-group"> 
 
     <input type="email" data-validation-required-message="Please enter your email address." required="" id="email" name="email" placeholder="Your Email *" class="form-control" value=""> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
     <div class="form-group"> 
 
     <input type="tel" data-validation-required-message="Please enter your phone number." required="" id="phone" name="phone" placeholder="Your Phone *" class="form-control" value=""> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="col-md-6"> 
 
     <div class="form-group"> 
 
     <textarea data-validation-required-message="Please enter a message." required="" id="message" name="message" placeholder="Your Message *" class="form-control" style="height:132px;" value=""></textarea> 
 
     <p class="help-block text-danger"></p> 
 
     </div> 
 
    </div> 
 
    <div class="col-lg-12 text-center"> 
 
     <div id="success"></div> 
 
     <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary" /> 
 
    </div> 
 
    <div class="form-group"> 
 
     <!-- Will be used to display an alert to the user --> 
 
    </div> 
 
    </div> 
 
</form> 
 
<!-- End Mailer -->

Вот URL для изображения показаны мои параметры, населяющие в сетевом режиме (Firebug). ** Переполнение стека не позволит мне отправлять фотографии из-за моей нехватки репутации.

http://tinypic.com/r/2znpdme/8

+0

Заменить + с. когда вы создаете тело письма. – Maximus2012

+0

http://php.net/manual/en/language.operators.string.php – Maximus2012

ответ

2

Вы конкатенации неправильно, вероятно, вы из JS;)

$body = "Name: " + $name + "\r\n" + "E-mail: " + $email + "\r\n" + "Phone: " + $phone + "\r\n" + "Message: " + $message + "\r\n"; 

Должно быть

$body = "Name: " . $name . "\r\n" . "E-mail: " . $email . "\r\n" . "Phone: " . $phone . "\r\n" . "Message: " . $message . "\r\n"; 
+0

Вот и все! Большое спасибо. и да, я исхожу из JavaScript! :) – perkface

+0

Я знал это! Я делаю Javascript и PHP одновременно, и я довольно часто смешиваю конкатенацию: D. Рад, что я мог бы помочь. – taxicala

0

Вы должны использовать оператор . конкатенации строк вместо + в PHP. Фактически, вы можете просто интерполировать переменные прямо в строке с двойными кавычками (в этой ситуации интерполяция более обычна в PHP):

<?php 
//building message body 
$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$message = $_POST['message']; 

//adding to the body variable 
$body = "Name: $name\r\nE-mail: $email\r\nPhone: $phone\r\nMessage:$message\r\n"; 

//email info 
$to = '[email protected]'; 
$subject = 'You have been contacted via the web form!'; 
$from = '[email protected]'; 


mail($to, $subject, $body); 
?>