Нужна помощь с HTML-формой PHP отправить письмо комбо блюдо - PullRequest
0 голосов
/ 07 июля 2010

PHP никогда не был моей сильной стороной, поэтому мне нужна помощь в получении содержимого формы для правильной отправки по электронной почте на PHP.

Вот HTML-форма:

<form action="estimate.php" method="post" >
                <fieldset>
                <input type="text" class="required" name="name" value="FULL NAME*" onfocus="if (this.value=='FULL NAME*') this.value='';"/>
                <input type="text" class="required" name="phone" value="PHONE NUMBER*" onfocus="if (this.value=='PHONE NUMBER*') this.value='';"/>
                <input type="text" class="required" name="email" value="EMAIL*" onfocus="if (this.value=='EMAIL*') this.value='';"/>
                <input type="text" class="required" name="date" value="MOVE DATE*" onfocus="if (this.value=='MOVE DATE*') this.value='';"/>
                <input type="text" class="required" name="origin" value="ORIGINATING ADDRESS*" onfocus="if (this.value=='ORIGINATING ADDRESS*') this.value='';"/>
                <input type="text" name="destination" value="DESTINATION ADDRESS" onfocus="if (this.value=='DESTINATION ADDRESS') this.value='';"/>
                <select name="move-type">
                    <option value="" selected="selected">TYPE OF MOVE</option>
                    <option value="Private">Private</option>
                    <option value="Commercial">Commercial</option>
                </select>
                <input id="quoteSubmit" 
                    type="image" src="_images/btn_submit.png" alt="" 
                    onmouseover="javascript:this.src='_images/btn_submit-over.png'" 
                    onmouseout="javascript:this.src='_images/btn_submit.png'"/>
                </fieldset>
 </form>

Вот PHP, который у меня есть:

<?php
$emailFromName = $_POST['name'];
$emailFromPhone = $_POST['phone'];
$emailFrom = $_POST['email'];
$emailDate = $_POST['date'];
$emailOrigin = $_POST['origin'];
$emailDestination = $_POST['destination'];
$emailType = $_POST['move-type'];

if (empty($emailFromName)) {
    echo 'Please enter your name.';
} elseif (!preg_match('/^([A-Z0-9\.\-_]+)@([A-Z0-9\.\-_]+)?([\.]{1})([A-Z]{2,6})$/i', $emailFrom) || empty($emailFrom)) {
    echo 'The email address entered is invalid.';
} elseif (empty($emailDate)) {
    echo 'You must enter a Move date.';
} elseif (empty($emailOrigin)) {
    echo 'You must enter a message.';
} elseif (empty($emailDestination)) {
    echo 'You must enter a message.';    
} else {

    $emailTo = "info@movingsimple.com";

    if (!empty($emailFrom)) {
        $emailHeaders = 'From: "' . $emailFromName . '" <' . $emailFrom . '>';
    } else {
        $emailHeaders = 'From: "The Boss" <noreply@movingsimple.com>';
    }

    /* Send Email */
    if (mail($emailTo, $emailSubject, $emailDate,   $emailHeaders)) {
        echo 'Thank you! Your message has been sent.';
    } else {
        echo 'There was an internal error while sending your email.<br>';
        echo 'Please try again later.';    
    }
}
?>

У меня проблемы с телом сообщения.Мне нужно отобразить все значения из формы:

От: E-mail: Телефон: Дата переезда: Источник: Назначение: Тип переезда:

, но я не совсем уверен, как скомпилировать все этив тело и был бы признателен за помощь.

спасибо.

Ответы [ 3 ]

1 голос
/ 07 июля 2010

Прямо сейчас вы отправляете $ emailDate в качестве тела сообщения. Вам просто нужно создать переменную с нужными вам данными.то есть

$emailBody = "Move date: " . $emailDate;

Я думаю, ваша переменная заголовка тоже должна иметь \ r \ n в конце.

1 голос
/ 07 июля 2010

Обновите эту часть кода

if (!empty($emailFrom)) {
    $emailHeaders = 'From: "' . $emailFromName . '" <' . $emailFrom . '>';
} else {
    $emailHeaders = 'From: "The Boss" <noreply@movingsimple.com>';
}

/* Send Email */
if (mail($emailTo, $emailSubject, $emailDate,   $emailHeaders)) {
    echo 'Thank you! Your message has been sent.';

, чтобы сгенерировать строку, содержащую текст письма:

if (!empty($emailFrom)) {
    $emailHeaders = 'From: "' . $emailFromName . '" <' . $emailFrom . '>';
} else {
    $emailHeaders = 'From: "The Boss" <noreply@movingsimple.com>';
}

// Create a string representing the body. "\n" creates a new line.
// The ".=" operator appends the string onto the existing string.
$body = "From: ".$emailFromName."\n";
$body .= "Email: ".$emailFrom."\n";
$body .= "Phone: ".$emailFromPhone."\n";
$body .= "Move Date: ".$emailDate."\n";
$body .= "Origin: ".$emailOrigin."\n";
$body .= "Destination: ".$emailDestination."\n";
$body .= "Move Type: ".$emailType."\n";

/* Send Email */
if (mail($emailTo, $emailSubject, $body,   $emailHeaders)) {
    echo 'Thank you! Your message has been sent.';

// ... rest of the code ...

Третий параметр функции mail () (http://us.php.net/manual/en/function.mail.php) - это сообщение, поэтому мы создаем сообщение в виде строки ($ body) и затем передаем его в качестве параметра в функцию mail ().

Small Update: На странице справки PHP mail () говорится, что в качестве окончания строки следует использовать «\ n», а не «\ r \ n»

1 голос
/ 07 июля 2010

Третий атрибут функции mail относится к телу письма, а не к дате, как вы указываете $emailDate, вам следует указать тело письма.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...