Форма обратной связи на 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>\r\n";
$headers .= "To: =?windows-1251?B?" . base64_encode($to_name) . "?= <$to>\r\n";
$headers .= "Subject: =?windows-1251?b?" . base64_encode($subject) . "?=\r\n";
$headers .= "Content-type: $this->_plain; charset=\"windows-1251\"\r\n";
$headers .= "X-Mailer: ox2.ru disign studio\r\n";
//Если сообщение отправлено, то возвращаем 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"] . "\n\r"; //Готовим само сообщение
$message .= "email: " . $_POST["email"] . "\n\r";
$message .= "Сообщение: " . $_POST["message"] . "\n\r";
//Отправляем сообщение
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. Помимо нее можно отправлять письмо по сокетам, но об этом в следующей статье.
Скачать исходник




Единственный код, который отправляет письма в нормальной кодировке на любые клиенты.