[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP mailer
azazaz
Помогите пожалуйста со скриптом, я в php мало смыслю, проблема заключается в следующем: скрипт работает, отправляет заказ, все данные отображаются верно, но первое поле в заголовке отображается кракозяброй: Имя:Ераоое, Телефон:+72222222222, Сумма заказа:59209,71,
С чем это может быть связано и как решить проблему? До этого тело сообщения отображалось также, но я изменила в файле классы кодировку и все ок...





<?php

/** print all incoming/pre-parsing data **/
//var_dump($_POST);
$json_value = @$_POST["json_value"];
/*
echo "<pre>";
print_r($json_value);
echo "</pre>";
echo "<hr>";
*/

$json_value = iconv('cp1251', 'utf-8', $json_value);//json должен быть уже в utf!
/*
echo "<pre>";
print_r($json_value);
echo "</pre>";
echo "<hr>";
echo "<pre>";
print_r(json_decode($json_value, true));
echo "</pre>";
*/

require_once 'PHPMailer/class.phpmailer.php';


function create_file($lines) {
$file_name = "tmp/csv_".time().".csv";
$csv_file = fopen($file_name, "w");
foreach($lines as $line) {
//fwrite($csv_file, $line);
fwrite($csv_file, iconv('utf-8','cp1251',$line));
}
fclose($csv_file);
return $file_name;
}

function create_order($lines, $shipping, $price, $name, $phone) {
$headers = "SKU;Наименование;Количество;\"Цена за шт\";Стоимость\n";
$headers_utf8 = iconv('cp1251', 'utf-8', $headers);
array_unshift($lines, $headers_utf8);
//$free = iconv('cp1251', 'utf-8', 'Бесплатно');
$free = 'Бесплатно';
$ship_price = ($price > 3000.0 ? $free : 300);
$shipping_line = $shipping.";".$ship_price.";;;\n";
array_push($lines, $shipping_line);
$file_name = create_file($lines);
$subject = "Имя:".$name.", Телефон:".$phone.", Сумма заказа:".$price;
// $subject = iconv('cp1251', 'utf-8', 'Тестовый заголовок');
$subject = iconv('cp1251', 'utf-8', $subject);
send_email("=?utf-8?B?".base64_encode($subject)."?=", $lines, $file_name);
unlink($file_name);
}

function send_email($subject, $body, $attach) {
// $to = @$_POST['mail'] ? $_POST['mail'] : 'ushihvost@mail.ru';
// $to = @$_POST['mail'] ? $_POST['mail'] : 'victor.antonov@gmail.com';

$to = 'fiael@mail.ru';
// $to = 'victor.antonov@gmail.com';
$mail = new PHPMailer();
$body_text = "";
foreach($body as $line) {
$body_text .= $line;
}
//$body = 'Тест';
$mail->AddAddress($to);
$mail->Subject = $subject;
$mail->MsgHTML($body_text);
if ($attach)
$mail->AddAttachment($attach);
if (!$mail->Send()){
echo "Error: ".print_r($mail->ErrorInfo,true);
$file_name = "tmp/log.txt";
$logfile = fopen($file_name, "a");
fwrite($logfile, date('Y-m-d H:i:s')." Error: ".print_r($mail->ErrorInfo,true)."\n\n");
fclose($logfile);
}else
echo "Ok";
}



$jsons = json_decode($json_value, true);
if (!strcmp(@$_POST['action'], 'csv')) {

create_order($jsons["goods"], $jsons["shipping"], $jsons["price"], $jsons["contact_name"], $jsons["cell_number"]);
}
else {
$subject = iconv('utf-8', 'cp1251' , "Обратная связь(от ").$jsons["contact_name"].iconv( 'utf-8',")");//тут надо проверить кодировку, json обычно уже в UTF-8!!!
// $subject = iconv('utf-8', 'cp1251', $subject);

$body = $jsons["body"];
// $body = iconv('cp1251', 'utf-8', $jsons["body"]);
send_email("=?utf-8?B?".base64_encode($subject)."?=", array($body), '');
}


?>


 ! 

М
используйте bb коды для подсветки синтаксиса
killer8080
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.