проблема с кодировкой в форме

Статус
В этой теме нельзя размещать новые ответы.

ufaclub

Полезный
Регистрация
1 Май 2007
Сообщения
395
Реакции
19
скрипт выдерает из формы нтмл данные и отправляет на мыло..первый раз в нормальной еодировке а потом уже ироглифами где прописать мол чтоб скриптик отсылал в нужной кодировке(русскими чтоб буквами приходило)

<?
if(isset($_POST['fio']))
{
$to = "to@mail.ru";
$from = "from@mail.ru";
$subject = "Инфа";
$headers = "From: $from\r\n";
$headers .= "Content-type: text/html\r\n";
$message = "<html>
<body bgcolor='#DCEEFC'>
<center>
</center>
<font color='red'>ФИО:".$_POST['fio']."</font><br>
<font color='blue'>E-mail:".$_POST['email']."</font><br>
<font color='green'>Phone:".$_POST['phone']."</font><br>
<font color='red'>Text:".$_POST['mess']."</font><br>
</body>
</html>";
mail($to, $subject, $message, $headers);
header("Location: legal.html");
}

?>
 
ыы напримере б показал ато ячет невкуриваю..






-------

:mad: Не на базаре! В следующий раз париться пойдешь!
 
PHP:
$headers = "Content-type: text/plain; charset=windows-1251";
 
ДА всё решается очень просто:

PHP:
    $subject = "Биржа труда";
    $email='poisk@home.ru';
    $headers = "From: site <$email>\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=windows-1251\r\n";//iso-8859-1
    $headers .= "Reply-To: $email\n\n";
    $message.='Текст письма';
$send = @mail($email, $subject, $message, $headers);

:)
 
всем спасибо.проблема решена
 
Скажите в чем м.б. проблема если mysql в win1251 А на сайте все пишется если изменить на русском то вопросиками.
 
Кодировка страницы, с которой отправляются данные, не подходит. Попробуй указать мета-тегом

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
 
Кодировка страницы, с которой отправляются данные, не подходит. Попробуй указать мета-тегом

<meta http-equiv="content-type" content="text/html; charset=windows-1251" />

Второй вариант - получать данные из мускула в нужной кодировке. Тут используем вот такую штуку перед запросом на выборку данных:

Код:
set names 'cp1251';

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

А в идеале надо чтобы и мета-теги, и хедеры и база данных были в одной кодировке. Например, windows-1251. Тогда не будет никаких проблем.
 
Итак. Номер раз по поводу кодировок:
обратись к хостеру и попроси чтобы для твоего сайта указали следующее - adddefaultcharset cp1251
либо php_value default_charset cp1251 (последнее имеет больший приоритет чем первая директива)
Тогда страница будет "отдаваться" сервером с этой кодировкой
если у тебя есть права на то, чтобы положить в папку с сайтам .htaccess и он будет обрабатываться - то можешь в этот файл сам добавить эти строки.
Дальше. Тут сказали о set names - на самом деле это только Верхушка Айсберга.
Вот статейка - почитай. Там обсуждается очень подробно о всех проблемах с кодировками из баз данных:
Для просмотра ссылки Войди или Зарегистрируйся
В метатегах сайта обязательно укажи в подключаемом хидере следующее:

HTML:
<?xml version="1.0" encoding="windows-1251"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta http-equiv="Content-Language" content="ru"/>

А чтобы в дальнейшем проблем вообще не возникало - уходите в сторону UTF-8, которая великолепно поддерживает кирилицу)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху