Вопрос про формы.

#
Re: Вопрос про формы.
огромное спасибо


выкладываю готовую форму обратной связи
<?php

function show_form()

{

?>

<form action="" method="post">

<table class="link_table" border="0" cellspacing="0" cellpadding="7" width="100%" bgcolor="#eeeeee">

<tbody>

<tr>

<td align="right" valign="middle"><strong>Ваше имя<span class="style9"> *</span>:</strong></td>

<td><input id="name" name="name" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Ваш телефон<span class="style9">*</span>:</strong></td>

<td><input id="age" name="tel" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>E-mail <span class="style9">*</span>:</strong></td>

<td><input id="email" name="email" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Тема <span class="style9">*</span>:</strong></td>

<td><input id="email" name="title" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="top"><strong>Ваше сообщение<span class="style9"> *</span>:</strong></td>

<td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td>

</tr>

<br />

<td align="right" valign="top"><strong><input type="submit" value="Отправить" name="submit"></span></strong></td>

</tbody>

</table>

<p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p>

<p>Телефон в международном формате </p>

</form>

<?

}



function complete_mail() {

// $_POST['title'] содержит данные из поля "Тема", trim() — убираем все лишние пробелы и переносы строк,
// htmlspecialchars() — преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие
// попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) — урезаем текст до 1000 символов. Для
// переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично

$_POST['title'] = htmlspecialchars(trim($_POST['title']));

$_POST['mess'] = htmlspecialchars(trim($_POST['mess']));

$_POST['name'] = htmlspecialchars(trim($_POST['name']));

$_POST['tel'] = htmlspecialchars(trim($_POST['tel']));

$_POST['email'] = htmlspecialchars(trim($_POST['email']));

// если не заполнено поле "Имя" — показываем ошибку 0

if (empty($_POST['name']))

output_err(0);

// если неправильно заполнено поле email — показываем ошибку 1

if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))

output_err(1);

// если не заполнено поле "Сообщение" — показываем ошибку 2

if(!preg_match("/[а-я_]+[а-я_]+[а-я]{2,3}/i", $_POST['mess']))

output_err(2);

// если не заполнено поле "Контактный телефон" — показываем ошибку 3

if(!preg_match("/[0-9_]+[0-9_]/i", $_POST['tel']))

output_err(3);

// создаем наше сообщение

$mess = '

Имя отправителя:'.$_POST['name'].'

Контактный телефон:'.$_POST['tel'].'

Контактный email:'.$_POST['email'].'

'.$_POST['mess'];

// $to — кому отправляем

$to = 'Ваш емаил впишите сюда';

// $from — от кого

$from = htmlspecialchars(trim($_POST['email']));

mail($to, $_POST['title'], $mess, "From:".$from);

echo 'Спасибо! Ваше письмо отправлено.';

}



function output_err($num)

{

$err[0] = 'ОШИБКА! Не введено имя.';

$err[1] = 'ОШИБКА! Неверно введен e-mail.';

$err[2] = 'ОШИБКА! Не введено сообщение.';

$err[3] = 'ОШИБКА! Не введен телефон.';

echo '<p>'.$err[$num].'</p>';

show_form();

exit();

}



if (!empty($_POST['submit'])) complete_mail();

else show_form();

?>
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Модератор
#
Re: Вопрос про формы.
Пожалуйста.
Вы только что начали читать предложение, чтение которого вы уже заканчиваете.
#
Re: Вопрос про формы.
Письмо отправляется. Но на почту приходит вместо русских букв абракодабра.Проблема в кодировке? Как решить,не подскажите?
#
Re: Вопрос про формы.
у меня щас у клиента возникла такая же проблема, причем абракадабра приходит только на ее мейловскую почту, на мою яндексовскую если переключить -  все ок
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Вопрос про формы.
служебная информация письма не заполнена, поэтому "читаемость" будет зависеть от хостинга и почтовой программы

как минимум нужно добавить следующее

$headers = "From: {$from}\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .="Content-Transfer-Encoding: 8bit";

mail($to, $_POST['title'], $mess, $headers);
разработка сайтов, фирменных стилей, интерфейсов
#
Re: Вопрос про формы.
Совет toasterec помог!

Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Вопрос про формы.
Уважаемые прошу прощения за глупый вопрос, а куда добавлять
$headers = "From: {$from}\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .="Content-Transfer-Encoding: 8bit";

mail($to, $_POST['title'], $mess, $headers);

А то как-то слабоват я в этом...
#
Re: Вопрос про формы.
<?php

function show_form()

{

?>

<form action="" method="post">

<table class="link_table" border="0" cellspacing="0" cellpadding="7" width="100%" bgcolor="#eeeeee">

<tbody>

<tr>

<td align="right" valign="middle"><strong>Ваше имя<span class="style9"> *</span>:</strong></td>

<td><input id="name" name="name" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Ваш телефон<span class="style9">*</span>:</strong></td>

<td><input id="age" name="tel" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>E-mail <span class="style9">*</span>:</strong></td>

<td><input id="email" name="email" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="middle"><strong>Тема <span class="style9">*</span>:</strong></td>

<td><input id="email" name="title" size="40" type="text" /></td>

</tr>

<tr>

<td align="right" valign="top"><strong>Ваше сообщение<span class="style9"> *</span>:</strong></td>

<td><textarea id="comments" cols="35" rows="7" name="mess"></textarea> <input id="confirm" name="confirm" type="hidden" value="yes" /></td>

</tr>

<br />

<td align="right" valign="top"><strong><input type="submit" value="Отправить" name="submit"></span></strong></td>

</tbody>

</table>

<p><strong class="style9">*</strong> — поля, обязательные для заполнения.</p>

<p>Телефон в международном формате </p>

</form>

<?

}



function complete_mail() {

// $_POST['title'] содержит данные из поля "Тема", trim() — убираем все лишние пробелы и переносы строк,
// htmlspecialchars() — преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие
// попытки взломать наш сайт обломались, ну и substr($_POST['title'], 0, 1000) — урезаем текст до 1000 символов. Для
// переменных $_POST['mess'], $_POST['name'], $_POST['tel'], $_POST['email'] все аналогично

$_POST['title'] = htmlspecialchars(trim($_POST['title']));

$_POST['mess'] = htmlspecialchars(trim($_POST['mess']));

$_POST['name'] = htmlspecialchars(trim($_POST['name']));

$_POST['tel'] = htmlspecialchars(trim($_POST['tel']));

$_POST['email'] = htmlspecialchars(trim($_POST['email']));

// если не заполнено поле "Имя" — показываем ошибку 0

if (empty($_POST['name']))

output_err(0);

// если неправильно заполнено поле email — показываем ошибку 1

if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $_POST['email']))

output_err(1);

// если не заполнено поле "Сообщение" — показываем ошибку 2

if(!preg_match("/[а-я_]+[а-я_]+[а-я]{2,3}/i", $_POST['mess']))

output_err(2);

// если не заполнено поле "Контактный телефон" — показываем ошибку 3

if(!preg_match("/[0-9_]+[0-9_]/i", $_POST['tel']))

output_err(3);

// создаем наше сообщение

$mess = '

Имя отправителя:'.$_POST['name'].'

Контактный телефон:'.$_POST['tel'].'

Контактный email:'.$_POST['email'].'

'.$_POST['mess'];

// $to — кому отправляем

$to = 'email@email.ru';


// $from — от кого

$from = htmlspecialchars(trim($_POST['email']));

$headers = "From: {$from}\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .="Content-Transfer-Encoding: 8bit";

mail($to, $_POST['title'], $mess, $headers);

//mail($to, $_POST['title'], $mess, "From:".$from);

echo 'Спасибо! Ваше письмо отправлено.';

}



function output_err($num)

{

$err[0] = 'ОШИБКА! Не введено имя.';

$err[1] = 'ОШИБКА! Неверно введен e-mail.';

$err[2] = 'ОШИБКА! Не введено сообщение.';

$err[3] = 'ОШИБКА! Не введен телефон.';

echo '<p>'.$err[$num].'</p>';

show_form();

exit();

}



if (!empty($_POST['submit'])) complete_mail();

else show_form();

?>
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Вопрос про формы.
Спасибо! Мне помогло!

Подскажите, а можно ли в нее интегрировать гуглокапчу и сожно ли сообщения оставлять в админке (например как отзывы о товаре)?
///
#
Re: Вопрос про формы.
как добавить в такую форму поле Прикрепить файл?

добавила строку:

</tr>
<tr>
<td><strong>Вложить файл:</strong></td><td><input type="file" name="files"  size="30"/></td>
</tr>


что дописать в коде (см.выше),  чтоб файл прикрепился к письму?
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Авторизация