Помогите с php веб-формой.

[Удален]
718

Пытаюсь настроить скрипт почтовой формы, для отправки сообщений с сайта на мой e-mail, но письма приходят пустыми. Только в теле письма приходит строчка "This is from: ()". Подскажите где ошибка.

Сама форма


<form name="mail" method="post" action="mail.php">
<table width="356" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="112" height="34"><font size="-1">Ваше имя</font></td>
<td width="244">
<input type="text" name="name" size="15">
</td>
</tr>
<tr>
<td width="112" height="43"><font size="-1">Как с вами связаться</font></td>
<td width="244">
<input type="text" name="email">
</td>
</tr>
<tr>
<td width="150" height="36"><font size="-1">Тема письма</font></td>
<td width="244">
<input type="text" name="subject">
</td>
</tr>
<tr>
<td width="112" height="56"><font size="-1">Текст письма</font></td>
<td width="244">
<textarea name="message" wrap="VIRTUAL" cols="30"></textarea>
</td>
</tr>
<tr>
<td width="112" height="77"></td>
<td>
<input type="submit" name="submit" value="Послать сообщение">
</td>
</tr>
</table>
</form>

скрипт отправки:


<?php

$to = "myemail@myemail.ru";


$extra = "From: $email\r\nReply-To: $email\r\n";
$mess = "This is from: ".$name."(".$REMOTE_ADDR.")\n\n".$message;

mail ($to, $subject, $mess, $extra);

echo("Ваше сообщение отправлено.\n");

?>

И еще, подскажите пожалуйста, почему на страничке mail.php не меняется кодировка.

Т.е., у меня по умолчанию стоит utf-8, и все html странички из которых состоит сайт, нормально отображают русский, но когда, после отправки, подгружается страница mail.php на котрой выводится сообщение о результатах отправки (этот код так же вписан в дизайн), кодировка меняется, и вместо русских букв появляются квадраты.

Что-то нужно прописать в .htaccess?

kil
На сайте с 03.04.2006
Offline
84
kil
#1

Вот так должно работать:


<?php

$to = "myemail@myemail.ru";


$extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n";
$mess = "This is from: ".$_POST['name']."(".$_SERVER['REMOTE_ADDR'].")\n\n".$_POST['message'];

mail ($to, $_POST['subject'], $mess, $extra);

echo("Ваше сообщение отправлено.\n");

?>

По теме: http://www.php.net/manual/en/security.globals.php

[Удален]
#2
kil:
Вот так должно работать:

<?php

$to = "myemail@myemail.ru";


$extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n";
$mess = "This is from: ".$_POST['name']."(".$_SERVER['REMOTE_ADDR'].")\n\n".$_POST['message'];

mail ($to, $_POST['subject'], $mess, $extra);

echo("Ваше сообщение отправлено.\n");

?>

Супер. Теперь все подставляет куда нужно, так же результат отправки выдается по русски, но в теме и самом письме (при получении), все равно зюквы :(

This is from: Вася пупкин

Р*то РїСЂРѕР±РЅРѕРµ РїРёСЃСЊРјРѕ

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

kil
На сайте с 03.04.2006
Offline
84
kil
#3
ХочуВсеЗнать:
Супер. Теперь все подставляет куда нужно, так же результат отправки выдается по русски, но в теме и самом письме (при получении), все равно зюквы :(

Пропишите необходимую кодировку в заголовках

ХочуВсеЗнать:

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

Мда.. Что там говорил Ленин? "Учиться, учиться и еще раз учиться"!

[Удален]
#4
kil:
Пропишите необходимую кодировку в заголовках


Мда.. Что там говорил Ленин? "Учиться, учиться и еще раз учиться"!

Спасибо за помощь.

belnik
На сайте с 28.02.2010
Offline
66
#5

Необходимо настроить кодировки,

Узнать получше (http://www.etxt.ru/belnik.html) Личный сайт (http://b-tal.ru)
[Удален]
#6
kil:
Пропишите необходимую кодировку в заголовках

не получается чего то(

если у меня стоит в .htaccess AddDefaultCharset utf-8, как мне послать письмо в другой кодировке?

kil
На сайте с 03.04.2006
Offline
84
kil
#7
ХочуВсеЗнать:
не получается чего то(
если у меня стоит в .htaccess AddDefaultCharset utf-8, как мне послать письмо в другой кодировке?


$extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n";
$extra .= "Content-type: text/plain; charset=utf-8 \r\n";

kil добавил 16.04.2010 в 15:17

belnik:
Необходимо настроить кодировки,

А мы-то и не знали! 😂

[Удален]
#8
kil:

$extra = "From: ".$_POST['email']."\r\nReply-To: ".$_POST['email']."\r\n";
$extra .= "Content-type: text/plain; charset=utf-8 \r\n";

спасибо еще раз.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий