Здравствуйте, нужна ваша помощь!
есть файл: form.php кодирован в ANSI
содержимое:
пару дней назад он работал на ура, сейчас же косяки с кодировкой и не могу понять в чем дело(
Письмо приходит на почту и если в $fname попала кириллица то он ее отображает примерно так "кириллица" в текстовый файл записывает точно так же!
вопрос почему??? в настройках сервера (php) стандартная кодировка windows-1251
html файл с формой откуда приходят данные в кодировке "ANSI" и в шапке запись <meta charset="windows-1251" />
текстовый файл имеет кодировку так же "ANSI", при чем заметил, что в нем уже была запись на кириллице и она отображается правильно, а значит от сюда я вывел что записывает не верно.
в чем может быть причина и как ее решить?
есть файл: form.php кодирован в ANSI
содержимое:
PHP код:
<?php
// Параметры
$to='karakymg@gmail.com'; // кому
$subject = 'Сообщение с сайта'; // Тема
$sender = 'Заявка на тренинг'; // Имя отправителя
$from = 'training@barista-plus.com.ua'; // Адрес отправителя
$redir = '/'; // куда переходим потом
$second = 4; // сколько секунд ждать до переадресации
// получим данные с формы
$fname = $_POST['contactname'];
$fphone = $_POST['phone'];
//
$f = fopen('bd.txt', 'a');
fputs($f, $fname . '|' . $fphone . "\r\n");
fclose($f);
// прочие параметры
$newline = "\n";
$text = 'Имя: '.$fname.' Телефон: '.$fphone;
$toredir = "Refresh: ".$second."; url=http://".$_SERVER['SERVER_NAME'].$redir;
$boundary = '----=_NextPart_' . md5(time());
$header = '';
$header .= 'MIME-Version: 1.0' . $newline;
$header .= 'To: ' . $to . $newline;
$header .= 'Subject: ' . $subject . $newline;
$header .= 'Date: ' . date('D, d M Y H:i:s O') . $newline;
$header .= 'From: ' . '=?windows-1251?B?' . base64_encode($sender) . '?=' . '<' . $from . '>' . $newline;
$header .= 'Reply-To: ' . '=?windows-1251?B?' . base64_encode($sender) . '?=' . '<' . $from . '>' . $newline;
$header .= 'Return-Path: ' . $from . $newline;
$header .= 'X-Mailer: PHP/' . phpversion() . $newline;
$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $newline . $newline;
$message = '--' . $boundary . $newline;
$message .= 'Content-Type: text/plain; charset="windows-1251"' . $newline;
$message .= 'Content-Transfer-Encoding: 8bit' . $newline . $newline;
$message .= $text . $newline;
$message .= '--' . $boundary . '--' . $newline;
@mail($to, '=?windows-1251?B?' . base64_encode($subject) . '?=', $message, $header);
@header($toredir);
// Ниже сообщение можно целую страницу написать
?>
Письмо приходит на почту и если в $fname попала кириллица то он ее отображает примерно так "кириллица" в текстовый файл записывает точно так же!
вопрос почему??? в настройках сервера (php) стандартная кодировка windows-1251
html файл с формой откуда приходят данные в кодировке "ANSI" и в шапке запись <meta charset="windows-1251" />
текстовый файл имеет кодировку так же "ANSI", при чем заметил, что в нем уже была запись на кириллице и она отображается правильно, а значит от сюда я вывел что записывает не верно.
в чем может быть причина и как ее решить?