Наше прошлое 20072009201120132014
г. Москва, ул. Гостиничная, д. 7А. кор.2
8 (499) 404-26-56
пн-пт 11:00 - 19:00
 

Форма обратной связи на php

Если вы хотите создать интернет магазин, то вам просто необходимо разместить форму обратной связи, чтобы люди могли отправлять сообщения администрации сайта. Обычно форма обратной связи располагается в разделе контакты..

Для отправки почтовых сообщений с сайта, пользователь должен заполнить стандартные текстовые поля (ФИО, e-mail, сообщение), и нажать на кнопку «отправить сообщение».

При нажатии на «отправить сообщение», происходит отправка формы, потом обработка отправленных данных, и отправка письма.

Вот скрипт обратной связи на php:

<?php

/**
 * Класс отправки почтовых сообщений функций mail()
 * @author дизайн студия ox2.ru
 */
class Mail {
    //В переменной храним тип сообщения, обычный текст, или html
    private $_plain = "text/plain";  

    /**
     * Метод установки типа сообщения, если параметр $type = true, сообщение будет HTML,
     * если false, то обычный текст
     * @param <boolean> $type
     */

    public function isTypeHtml($is_html = true) {
        if ($is_html == true) {
            $this->_plain = "text/html";
        } else {
            $this->_plain = "text/plain";
        }
    }

    /**
     * Метод отправляет сообщение
     * @param string $to - e-mail, на который придет сообщение
     * @param <type> $to_name - Имя получателя
     * @param string $from - e-mail, с которого будет отправлено сообщение
     * @param <type> $from_name - Имя отправителя
     * @param string $subject - тема сообщения
     * @param <type> $message - сообщение
     * @return <type>
     */
    public function send($to, $to_name, $from, $from_name, $subject, $message) {
        //Делаем правильные заголовки, чтобы русский был русским, и т.д.
        $headers = "From: =?windows-1251?B?" . base64_encode($from_name) . "?= <$from>rn"; 
        $headers .= "To: =?windows-1251?B?" . base64_encode($to_name) . "?= <$to>rn";
        $headers .= "Subject: =?windows-1251?b?" . base64_encode($subject) . "?=rn";
        $headers .= "Content-type: $this->_plain; charset="windows-1251"rn";
        $headers .= "X-Mailer: ox2.ru disign studiorn";
   
        //Если сообщение отправлено, то возвращаем true
        if (mail($to, $subject, $message, $headers)) { 
            return true;
        }
        else return false; //Если возникли ошибки при отправке сообщений, то false

    }

}

if (isset($_POST["send"])) {
    $mail = new Mail(); //Создаем класс Mail
    $mail->isTypeHtml(false); //Ставим тип сообщения как обычный текст
    $message = "ФИО: " . $_POST["fio"] . "nr"; //Готовим само сообщение
    $message .= "email: " . $_POST["email"] . "nr";
    $message .= "Сообщение: " . $_POST["message"] . "nr";

    //Отправляем сообщение
    if ($mail->send("info@ox2.ru", "Евгений", "info@ox2.ru", "Дизайн студия OX2.ru!",
                "Сообщение с сайта", $message)) {
        echo "<p>Сообшение успешно отправлено!</p>";
    } else {
        echo "<p>Возникли ошибки при отправке сообщения!</p>";
    }
}
?>
<form method="post" action="">
    <table cellpadding="2" cellspacing="0" border="0">
        <tbody>
            <tr>
                <td valign="middle" align="right">Фио:</td>
                <td valign="middle" align="left">
                    <input type="text" value="" name="fio" size="25" maxlength="255" />
                </td>
            </tr>
            <tr>
                <td valign="middle" align="right">E-mail:</td>
                <td valign="middle" align="left">
                    <input type="text" value="" name="email" size="25" maxlength="255" /><br/>
                </td>
            </tr>
            <tr>
                <td valign="top" align="right">Сообщение:</td>
                <td valign="middle" align="left">
                    <textarea name="message" rows="5" cols="30"></textarea>
                </td>
            </tr>
            <tr>
                <td valign="middle" align="right" colspan="2">
                    <input type="submit" value="Отправить" name="send" />
                </td>
            </tr>
        </tbody>
    </table>
</form>

Для отправки письма из php, мы использовали стандартную функцию mail. Помимо нее можно отправлять письмо по сокетам, но об этом в следующей статье.

Скачать исходник

Если вы хотите создать интернет магазин, то вам просто необходимо разместить форму обратной связи, чтобы люди могли отправлять сообщения администрации сайта. Обычно форма обратной связи располагается в разделе контакты.. Для отправки почтовых сообщений с сайта, пользователь должен заполнить стандартные текстовые поля (ФИО, e-mail, сообщение), и нажать на кнопку «отправить сообщение».

Комментарии (Написать комментарий)

Андрей [09.02.2015]

Комментарий:
В строке 40 ошибка

Алексей [31.01.2015]

Комментарий:
Ну кто посылает в 2015 году в "русской" кодировке?. Нужно UTF-8
"To: =?windows-1251?B?" меняем везде на "To: =?UTF-8?B?"

Сергей [28.01.2015]

Комментарий:
Спасибо за форму.
А куда в итоге ставить свой email?

Заполните все поля

Написать комментарий

Ваше имя

Комментарий