Что нужно изменить
Доброго дня земляне!
Есть код формы обратной связи,кот. на локалке (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;"> </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 начинается? Где что поменять нужно,мож кто знает? Спасибо! |
'From: =?utf-8?B?' . base64_encode('Best Shop') . '?= <noreply@best-shop.piva.net>' |
Поменял в 73 строке после знака равенства на вашу строчку,вообще форма перестала реагировать на кнопку отправки.
|
Какого равенства, оно есть часть строкового значения. К кнопке это не имеет отношения.
|
Цитата:
В коде что поменять,чтоб заработало? |
Объявляемая кодировка не затрагивает заголовки поэтому тему письма, а также имя перед адресом кодируют так, как было показано:
$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 помещайте в соответсвтующий раздел. |
Часовой пояс GMT +3, время: 12:31. |