Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.04.2016, 14:04
Аватар для Spirit_on
Аспирант
Отправить личное сообщение для Spirit_on Посмотреть профиль Найти все сообщения от Spirit_on
 
Регистрация: 27.04.2014
Сообщений: 41

Что нужно изменить
Доброго дня земляне!
Есть код формы обратной связи,кот. на локалке (Open Server) работает ка должен.

<?php
parse_str($_POST['orderlist'], $orderlist);
parse_str($_POST['userdata'], $userdata);
/*
$orderlist - массив со списком заказа
$userdata - данные заказчика
*/

// При желании, можно посмотреть полученные данные, записав их в файл:
// file_put_contents('cart_data_log.txt', var_export($orderlist, 1) . "\r\n");
// file_put_contents('cart_data_log.txt', var_export($userdata, 1), FILE_APPEND);


// Заголовок письма
$subject = 'Заказ от '.date('d.m.Y').'г.';
// ваш Email
$admin_mail = '123@ya.ru';
// Email заказчика (как fallback - ваш же Email)
$to = !empty($userdata['user_mail']) ? $userdata['user_mail'] : $admin_mail;

// Формируем таблицу с заказанными товарами
$tbl = '<table style="width: 100%; border-collapse: collapse;">
	<tr>
		<th style="width: 1%; border: 1px solid #333333; padding: 5px;">ID</th>
		<th style="width: 1%; border: 1px solid #333333; padding: 5px;"></th>
		<th style="border: 1px solid #333333; padding: 5px;">Наименование</th>
		<th style="border: 1px solid #333333; padding: 5px;">Цена</th>
		<th style="border: 1px solid #333333; padding: 5px;">Кол-во</th>
	</tr>';
$total_sum = 0;
foreach($orderlist as $id => $item_data) {
	$total_sum += (int)$item_data['count'] * (int)$item_data['price'];
	$tbl .= '
	<tr>
		<td style="border: 1px solid #333333; padding: 5px;">'.$item_data['id'].'</td>
		<td style="border: 1px solid #333333;"><img src="'.$item_data['img'].'" alt="" style="max-width: 64px; max-height: 64px;"></td>
		<td style="border: 1px solid #333333; padding: 5px;">'.$item_data['title'].'</td>
		<td style="border: 1px solid #333333; padding: 5px;">'.$item_data['price'].'</td>
		<td style="border: 1px solid #333333; padding: 5px;">'.$item_data['count'].'</td>
	</tr>';
}
$tbl .= '<tr>
		<td  style="border: 1px solid #333333; padding: 5px;" colspan="3">Итого:</td>
		<td style="border: 1px solid #333333; padding: 5px;"><b>'.$total_sum.'</b></td>
		<td style="border: 1px solid #333333;">&nbsp;</td>
	</tr>
</table>';
// Тело письма
$body = '
<html>
<head>
  <title>'.$subject.'</title>
</head>
<body>
  <p>Информация о заказчике:</p>
	<ul>
		<li><b>Ф.И.О.:</b> '.$userdata['user_name'].'</li>
		<li><b>Тел.:</b> '.$userdata['user_phone'].'</li>
		<li><b>Email:</b> '.$userdata['user_mail'].'</li>
		<li><b>Адрес:</b> '.$userdata['user_address'].'</li>
		<li><b>Комментарий:</b> '.$userdata['user_comment'].'</li>
	</ul>
	<p>Информация о заказае:</p>
  '.$tbl.'
	<p>Письмо создано автоматически. Пожалуйста, не отвечайте на него, т.к. все ушли на пляж!</p>
</body>
</html>';

// Заголовки
$headers   = array(); // или $headers = array() для версии ниже 5.4
$headers[] = 'MIME-Version: 1.0'; // Обязательный заголовок
$headers[] = 'Content-type: text/html; charset=utf-8'; // Обязательный заголовок. Кодировку изменить при необходимости
$headers[] = 'From: Best Shop <noreply@best-shop.piva.net>'; // От кого
$headers[] = 'Bcc: Admin <'.$admin_mail.'>'; // скрытая копия админу сайта, т.е. вам
$headers[] = 'X-Mailer: PHP/'.phpversion();
// Отправка
$send_ok = mail($to, $subject, $body, implode("\r\n", $headers));

// Ответ на запрос
$response = array (
    'errors' => !$send_ok,
    'message' => $send_ok ? 'Заказ принят в обработку!' : 'Хьюстон! У нас проблемы!'
);

exit( json_encode($response) );


А вот на хостинге не фурычит.
При переписке с ТП хостера,они вот что ответили:
---------------------------------------------
Также, по причине безопасности, блокируется заголовок
$headers.= 'From:' . $from . "rn";
если он используется в коде.

--------------------------------------------
Я как понял затык со строки 70 начинается?
Где что поменять нужно,мож кто знает?
Спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 19.04.2016, 14:44
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

'From: =?utf-8?B?' . base64_encode('Best Shop') . '?= <noreply@best-shop.piva.net>'
Ответить с цитированием
  #3 (permalink)  
Старый 19.04.2016, 17:34
Аватар для Spirit_on
Аспирант
Отправить личное сообщение для Spirit_on Посмотреть профиль Найти все сообщения от Spirit_on
 
Регистрация: 27.04.2014
Сообщений: 41

Поменял в 73 строке после знака равенства на вашу строчку,вообще форма перестала реагировать на кнопку отправки.
Ответить с цитированием
  #4 (permalink)  
Старый 19.04.2016, 17:40
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Какого равенства, оно есть часть строкового значения. К кнопке это не имеет отношения.
Ответить с цитированием
  #5 (permalink)  
Старый 19.04.2016, 18:26
Аватар для Spirit_on
Аспирант
Отправить личное сообщение для Spirit_on Посмотреть профиль Найти все сообщения от Spirit_on
 
Регистрация: 27.04.2014
Сообщений: 41

Сообщение от laimas Посмотреть сообщение
Какого равенства, оно есть часть строкового значения. К кнопке это не имеет отношения.
Ниче не понял.
В коде что поменять,чтоб заработало?
Ответить с цитированием
  #6 (permalink)  
Старый 20.04.2016, 14:10
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Объявляемая кодировка не затрагивает заголовки поэтому тему письма, а также имя перед адресом кодируют так, как было показано:

$subject = '=?utf-8?b?' . base64_encode('Заказ от '.date('d.m.Y').'г.') . '?=';

$headers[] = 'From: =?utf-8?B?' . base64_encode('Best Shop') . '?= <noreply@best-shop.piva.net>'; // От кого


Читайте рекомендации RFC, и темы не относящиеся к JS помещайте в соответсвтующий раздел.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что нужно проверять в номере мобильного? kvadratnt Общие вопросы Javascript 1 13.12.2012 15:54
Что нужно тут написать. Куда ещё содержательней-то. qaim Работа 8 22.11.2012 17:35
http://gigalit.info - Мои контакты Маэстро Ваши сайты и скрипты 70 08.12.2011 03:12
О фрилансе (Личный опыт) free Оффтопик 105 18.08.2011 17:02
Нужно что бы слайдер прокручивался по кругу sembler jQuery 0 29.06.2011 17:39