Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Отправка письма со списком товаров в нем
 
 автор: Veb   (28.06.2009 в 10:59)   письмо автору
 
 

Доброго времени суток! Может немного кривовато назвал тему, смысл ее в следующем.
Есть таблица со списком позиций, которые выбрал пользователь.
При оформлении заказа, отправляется письмо админу (новый заказ поступил) и пользователю (что он заказал).
В письмо нужно включить список позиций, которые выбрал пользователь. Понятно, что это надо сделать в цикле, только вот как потом запихать то, что он получит в переменную $msg?

  // Формируем письмо с информацией о заказе
  $thm = "Новый заказ - №".$orderlist['id_order'];
  $adm_email = $emails['email'];
  $msg = "<b>Покупатель:</b> ".$account['name1']." ".$account['surname']."<br><b>Email:</b> ".$account['email']."<br><b>Телефон:</b> ".$account['tel']."<br><b>Дата и время:</b> ".$orderlist['date']."<br><b>Комментарий:</b> ".$orderlist['comments']."<br><br>";
  $msg .= "<b>Содержимое заказа:</b><br>";
  $msg .= "<br>";
  $msg .= "<b>Адрес доставки:</b> ".$account['adres']."<br><b>Дополнительный адрес:</b> ".$orderlist['adres_dop']."<br><b>Итого:</b> ".$orderlist['summa']." руб.";
  $headers = 'Content-type: text/html' . "\r\n";
  $headers .= 'From: '.$adm_email. "\r\n";          
  // Отправляем письмо
  mail($adm_email, $thm, stripslashes($msg), $headers);

  Ответить  
 
 автор: sim5   (28.06.2009 в 11:37)   письмо автору
 
   для: Veb   (28.06.2009 в 10:59)
 

Ну вы же формируете сообщение: $msg .= .....; $msg .= ...., вот и добавляйте в цикле товары: $msg .= что-то о товаре;
Вот только $thm на русском так нельзя отсылать, ее нужно кодировать.

  Ответить  
 
 автор: Veb   (28.06.2009 в 12:05)   письмо автору
 
   для: sim5   (28.06.2009 в 11:37)
 

Попробовал так:


  // Формируем письмо с информацией о заказе
  $thm = "Новый заказ - №".$orderlist['id_order'];
  $adm_email = $emails['email'];
  $msg = "<b>Покупатель:</b> ".$account['name1']." ".$account['surname']."<br><b>Email:</b> ".$account['email']."<br><b>Телефон:</b> ".$account['tel']."<br><b>Дата и время:</b> ".$orderlist['date']."<br><b>Комментарий:</b> ".$orderlist['comments']."<br><br><br>";
  $msg .= "<b>Содержимое заказа:</b><br>";
  while($orders = mysql_fetch_array($ord))
  {
      $msg .= $orders['name']." (".$orders['quantity']." шт.)<br>";
  }
  $msg .= "<br>";
  $msg .= "<b>Адрес доставки:</b> ".$account['adres']."<br><b>Дополнительный адрес:</b> ".$orderlist['adres_dop']."<br><b>Итого:</b> ".$summa." руб.";
  $headers = 'Content-type: text/html' . "\r\n";
  $headers .= 'From: '.$adm_email. "\r\n";          
  // Отправляем письмо
  mail($adm_email, $thm, stripslashes($msg), $headers);



Получается теперь так, сколько товаров вынимается в цикле, столько раз и отправляется письмо (причем, только в последнем письме присутствуют все товары). Покажите пожалуйста где я ошибся?

  Ответить  
 
 автор: sim5   (28.06.2009 в 13:01)   письмо автору
 
   для: Veb   (28.06.2009 в 12:05)
 

От добавления цикла while, письмо не будет отправляться многократно. У вас значит выше присутсвует цикл.
Нельзя так письмо оформлять - его тему, заголовки. У вас даже кодировка сообщения не указана. Разделитель "\r\n" - это для Win, для Unix - "\n" будет. В общем так письма не оформляют.

  Ответить  
 
 автор: Veb   (28.06.2009 в 13:04)   письмо автору
 
   для: sim5   (28.06.2009 в 13:01)
 

Спасибо ))) цикл действительно был выше, поправил, все встало на свои места. По поводу оформления письма знаю - этот код тестовый вариант, дабы попробовать одну вещь, чисто для себя.
Спасибо еще раз за вразумление :-)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования