X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Ajax + .mail() = Крякозябы вместо русских букв.
Ramos
Ramos
Topic Starter сообщение 6.3.2011, 18:52; Ответить: Ramos
Сообщение #1


Бывалый
****

Группа: User
Сообщений: 376
Регистрация: 25.7.2010
Из: Одесса
Поблагодарили: 108 раз
Репутация:   32  


Доброго дня, при написании функции обратной связи появился данный сабж.

Вот код клиентской части:
$(document).ready(function(){

$("#contactSub").click(function(){
var nickname = $("#nickname").val();
var mail = $("#mail").val();
var text = $("textarea#text").val();

$.ajax({
type: "post",
url: "ext/send_mail.php",
data:({nickname : nickname, text : text, mail : mail}),
});

});
});


файл send_mail.php:

<?php
header("Content-Type: text/html; charset=windows-1251");
if (isset($_POST['nickname'])){$nickname = $_POST['nickname'];}
if (isset($_POST['mail'])){$mail = $_POST['mail'];}
if (isset($_POST['text'])){$text = $_POST['text'];}
$nickname = iconv('UTF-8', 'windows-1251', $_POST['nickname']);
$text = iconv('UTF-8', 'windows-1251', $_POST['text']);

$mess = substr(htmlspecialchars(trim($_POST['text'])), 0, 1000000);
$title = "xxxx";
$to = "mail@gmail.com";
$from = $mail;
mail($to, $title, $mess, 'From:'.$from."\r\n" . "MIME-Version: 1.0\r\nContent-type: text/html; charset=windows-1251");


--------------------
Skype: s.lagodzinsky


Поблагодарили: (1)
1
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
disiyndel
disiyndel
сообщение 6.3.2011, 18:56; Ответить: disiyndel
Сообщение #2


Завсегдатай
*****

Группа: Active User
Сообщений: 762
Регистрация: 27.10.2009
Из: отборных зерен.
Поблагодарили: 219 раз
Репутация:   29  


Скорее всего дело в: charset=windows-1251

попробуйте заменить на: charset=UTF-8


--------------------
http://heisenbrog.com - только цифры, факты и эксперименты.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ramos
Ramos
Topic Starter сообщение 6.3.2011, 18:58; Ответить: Ramos
Сообщение #3


Бывалый
****

Группа: User
Сообщений: 376
Регистрация: 25.7.2010
Из: Одесса
Поблагодарили: 108 раз
Репутация:   32  


(disiyndel @ 6.3.2011, 16:56) *
Скорее всего дело в: charset=windows-1251

попробуйте заменить на: charset=UTF-8


в каком именно месте ?


--------------------
Skype: s.lagodzinsky


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
disiyndel
disiyndel
сообщение 6.3.2011, 19:04; Ответить: disiyndel
Сообщение #4


Завсегдатай
*****

Группа: Active User
Сообщений: 762
Регистрация: 27.10.2009
Из: отборных зерен.
Поблагодарили: 219 раз
Репутация:   29  


В обоих.
А, стоп, скорее всего iconv у вас не работает. Тогда так:


файл send_mail.php:
<?php
header("Content-Type: text/html; charset=UTF-8");
if (isset($_POST['nickname'])){$nickname = $_POST['nickname'];}
if (isset($_POST['mail'])){$mail = $_POST['mail'];}
if (isset($_POST['text'])){$text = $_POST['text'];}
$nickname = $_POST['nickname'];
$text =$_POST['text'];

$mess = substr(htmlspecialchars(trim($_POST['text'])), 0, 1000000);
$title = "xxxx";
$to = "mail@gmail.com";
$from = $mail;
mail($to, $title, $mess, 'From:'.$from."\r\n" . "MIME-Version: 1.0\r\nContent-type: text/html; charset=UTF-8");


Сообщение отредактировал disiyndel - 6.3.2011, 19:05


--------------------
http://heisenbrog.com - только цифры, факты и эксперименты.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
proXBOCT
proXBOCT
сообщение 6.3.2011, 19:05; Ответить: proXBOCT
Сообщение #5


PHP-писака
*****

Группа: Active User
Сообщений: 867
Регистрация: 20.4.2008
Из: Тольятти
Поблагодарили: 297 раз
Репутация:   47  


А где смотрите пришедшее письмо?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ramos
Ramos
Topic Starter сообщение 6.3.2011, 19:12; Ответить: Ramos
Сообщение #6


Бывалый
****

Группа: User
Сообщений: 376
Регистрация: 25.7.2010
Из: Одесса
Поблагодарили: 108 раз
Репутация:   32  


disiyndel
сделал.. русский текст теперь видно, но теперь когда пишу в форме что то на латинице... письмо вообще не отправляется

proXBOCT
Denver tmp/!sendmail


--------------------
Skype: s.lagodzinsky


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Kostap13
Kostap13
сообщение 7.3.2011, 15:34; Ответить: Kostap13
Сообщение #7


Бывалый
****

Группа: User
Сообщений: 358
Регистрация: 5.7.2010
Поблагодарили: 81 раз
Репутация:   17  


(Ramos @ 6.3.2011, 18:12) *
disiyndel
сделал.. русский текст теперь видно, но теперь когда пишу в форме что то на латинице... письмо вообще не отправляется

proXBOCT
Denver tmp/!sendmail


private $newline = "\n";
.....
$mess = 'Текст письма';
//settings['sender'] и т.д. у меня берутся из базы. ЗАменяете на свои параметры как хотите.

            $boundary = '----=_NextPart_' . md5(time());
            $header = '';
        
        $header .= 'From: ' . '=?utf-8?B?'. base64_encode($this -> settings['sender']) .'?=' . '<' . $this -> settings['email'] . '>' . $this->newline;;
        $header .= 'Reply-To: ' . '=?utf-8?B?'. base64_encode($this -> settings['sender']) .'?=' . '<' . $this -> settings['email'] . '>' . $this->newline;;  
        $header .= 'Return-Path: ' . $this -> settings['email'] . $this->newline;;
        $header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;;
        $header .= 'MIME-Version: 1.0' . $this->newline;;
        $header .= 'Content-Type: multipart/mixed; boundary="----=_NextPart_' . md5(time()) . '"' . $this->newline;;         

        $message  = '--' . $boundary . $this->newline;
        $message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
        $message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

        $message .= $mess . $this->newline;;

        if (mail($this -> settings['email'], '=?utf-8?B?'.base64_encode($this -> settings['topic']).'?=', $message, $header) == false) {
            $arr['err'] = 4;
        }
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Естественные ссылки в системе ответов Mail.ru
Качественные ссылки с уникальным околоссылочным текстом
18 Vsevseo 2531 Вчера, 19:24
автор: Gelik
Открытая тема (нет новых ответов) Новости mail.ru появятся в "рекомендациях" Вконтакте?
19 eduarddis 2760 12.12.2017, 20:37
автор: galikfor
Открытая тема (нет новых ответов) Веб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
18 qpPeW 3375 12.12.2017, 13:32
автор: qpPeW
Открытая тема (нет новых ответов) Mail.Ru Group выпустила «убийцу» жестких дисков
20 jack 3276 12.12.2017, 11:15
автор: Neurotechnic
Открытая тема (нет новых ответов) Продам облако mail.ru на 1TB
2 seo_top 874 16.11.2017, 21:08
автор: seo_top


 



RSS Текстовая версия Сейчас: 14.12.2017, 1:20
Дизайн