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
Форумы портала PHP.SU :: Версия для печати :: Вопрос про PHP и кодировку UTF-8 (Кракозябры при отправке почты с обратной связи сайта)
Форумы портала PHP.SU » » Вопросы новичков » Вопрос про PHP и кодировку UTF-8 (Кракозябры при отправке почты с обратной связи сайта)

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

1. Jenia - 10 Января, 2017 - 14:58:18 - перейти к сообщению
При отправке почты с формы обратной связи сайта приходят кракозябры. Перепробовал массу способов и советов, все равно не получается((

Вот код

<?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>";
}
?>

Помогите пожалуйста!)
2. Denkill - 11 Января, 2017 - 11:11:02 - перейти к сообщению
Задайте заголовки правильно

PHP:
скопировать код в буфер обмена
  1. $headers = "Content-type: text/html; charset=iso-8859-1\r\n";
  2. mail($to, $subject, $msg, $headers);
3. Jenia - 11 Января, 2017 - 11:33:33 - перейти к сообщению
Если я правильно понял эти две строчки вставить после <?php, если да то не помогло!(

Я в PHP очень плохо разбираюсь.
4. Heavenanvil - 12 Января, 2017 - 08:54:30 - перейти к сообщению
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
5. Jenia - 12 Января, 2017 - 10:51:22 - перейти к сообщению
Спасибо за пояснение!!!

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

"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"))
6. Sail - 12 Января, 2017 - 11:48:23 - перейти к сообщению
Jenia, из описания функции mail известно, что:
CODE (htmlphp):
скопировать код в буфер обмена
  1. bool mail (string to, string subject, string message [, string additional_headers [, string additional_parameters]])

Следовательно, после параметра $headers надо добавить запятую.
7. Jenia - 12 Января, 2017 - 15:50:17 - перейти к сообщению
Попробовал и этот вариант, теперь выдает ошибку "К сожалению ваше сообщение не отправлено, повторите попытку позже."
8. teleoperator27 - 12 Января, 2017 - 16:41:23 - перейти к сообщению
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 меня смущает, но вы попробуйте )

 

Powered by ExBB FM 1.0 RC1