Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вопрос про PHP и кодировку UTF-8 (Кракозябры при отправке почты с обратной связи сайта)

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Jenia
Отправлено: 10 Января, 2017 - 14:58:18
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




При отправке почты с формы обратной связи сайта приходят кракозябры. Перепробовал массу способов и советов, все равно не получается((

Вот код

<?php
if(!$_POST) exit;

$to = 'lyashov-jenia@yandex.ru'; #Replace your email id...
$name = $_POST['txtname'];
$email = $_POST['txtemail'];
$comment = $_POST['txtmessage'];

if(get_magic_quotes_gpc()) { $comment = stripslashes($comment); }

$subject = 'You\'ve been contacted by ' . $name . '.';

$msg = "You have been contacted by $name.\r\n\n";
$msg .= "$comment\r\n\n";
$msg .= "You can contact $name via email, $email.\r\n\n";
$msg .= "-------------------------------------------------------------------------------------------\r\n";

if(@mail($to, $subject, $msg, "From: $email\r\nReturn-Path: $email\r\n"))
{
echo "<span class='success-msg'>Thanks for Contacting Us, We will call back to you soon.</span>";
}
else
{
echo "<span class='error-msg'>Sorry your message not sent, Try again Later.</span>";
}
?>

Помогите пожалуйста!)
 
 Top
Denkill
Отправлено: 11 Января, 2017 - 11:11:02
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




Задайте заголовки правильно

PHP:
скопировать код в буфер обмена
  1. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  2. mail($to, $subject, $msg, $headers);

(Отредактировано автором: 11 Января, 2017 - 11:28:18)



-----
Хо-Хо-Хо
 
 Top
Jenia
Отправлено: 11 Января, 2017 - 11:33:33
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Если я правильно понял эти две строчки вставить после <?php, если да то не помогло!(

Я в PHP очень плохо разбираюсь.

(Отредактировано автором: 11 Января, 2017 - 11:33:54)

 
 Top
Heavenanvil
Отправлено: 12 Января, 2017 - 08:54:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Jenia, не после <?php, а изменить строку:
PHP:
скопировать код в буфер обмена
  1. if(@mail($to, $subject, $msg, "From: $email\r\nReturn-Path: $email\r\n"))

После $msg добавьте $headers

А вот это:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
можно добавить и после <?php
 
 Top
Jenia
Отправлено: 12 Января, 2017 - 10:51:22
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Спасибо за пояснение!!!

Но после проделанных действий нна сайте при отправке появляется надпись

"Parse error: syntax error, unexpected '"' in /var/www/u0280344/data/www/servi ce-one.ru/php/send.php on line 19"

Ошибка в измененной строки

if(@mail($to, $subject, $msg, $headers "From: $email\r\nReturn-Path: $email\r\n"))

(Отредактировано автором: 12 Января, 2017 - 10:55:35)

 
 Top
Sail
Отправлено: 12 Января, 2017 - 11:48:23
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Jenia, из описания функции mail известно, что:
CODE (htmlphp):
скопировать код в буфер обмена
  1. bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Следовательно, после параметра $headers надо добавить запятую.
 
 Top
Jenia
Отправлено: 12 Января, 2017 - 15:50:17
Post Id


Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Янв. 2017  


Помог: 0 раз(а)




Попробовал и этот вариант, теперь выдает ошибку "К сожалению ваше сообщение не отправлено, повторите попытку позже."

(Отредактировано автором: 12 Января, 2017 - 15:50:37)

 
 Top
teleoperator27
Отправлено: 12 Января, 2017 - 16:41:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  3. $headers .= "From:" . $email . "\r\n";
  4. $headers .= "Return-Path: " . $email . "\r\n";
  5. $ret = mail($to, $subject, $msg, $headers);
  6. if($ret) #если отправилось
  7. {
  8. echo "бла-бла-бла";
  9. }else{#иначе
  10. echo "ля-ля-ля";
  11. }
  12.  

Как то так вроде. Nолько Return-Path меня смущает, но вы попробуйте )
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB