Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с почтой
Форумы портала PHP.SU » » Вопросы новичков » Проблема с почтой

Страниц (1): [1]
 

1. AngelofDem - 16 Сентября, 2011 - 00:52:38 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.     $post = '';
  3.     foreach($_POST as $k => $v) {
  4.             $post .= "$k=$v;<br>";
  5.     }
  6.         if (mail("angelofDem@gmail.com","Заказ от $_POST[Имя]", "$post", "Content-type: text/html; charset=utf8")){
  7.  echo "<h1>Ваш заказ успешно обработан!!!</h1><br>
  8.         Ожидайте звонка от наших специалистов для уточнения подробностей.
  9.         <br>";
  10.  }else{
  11.   echo 'При отправке письма возникла ошибка';
  12.  }


Содержимое самого массива
CODE (htmlphp):
скопировать код в буфер обмена
  1. Cхема=>D2500-крышка головки блока цилиндров
  2. Весь_узел=>0
  3. 3(крышка_металическая)=>1
  4. 5(шайба)=>55
  5. 6(кольцо_медное_ф10/I_а10х14/)=>1
  6. 4(гайка)=>7
  7. 1(крышка_головки_блока_цилиндров)=>3
  8. Имя=>вася
  9. Номер=>77777777777


на почту в данный момент приходит
Спойлер (Отобразить)

Нужно что бы приходило
Спойлер (Отобразить)


Пояснение. Нужно что бы из первого элемента массива не выводилось имя, а сразу значение. со второго и до последних двух подписывалось "шт." после значения. Последние 2 выводились как есть.

+есть ещё одна проблема. Когда письмо только приходит то кодировка в Теме письма корявая. И только после получения становится нормальной...

Буду очень благодарен за помощь..
2. AngelofDem - 16 Сентября, 2011 - 11:27:38 - перейти к сообщению
up...
3. AngelofDem - 18 Сентября, 2011 - 10:12:32 - перейти к сообщению
up
4. LIME - 18 Сентября, 2011 - 10:28:39 - перейти к сообщению
можно в цикле сделать изменения
PHP:
скопировать код в буфер обмена
  1.  <?PHP
  2.  foreach($_POST as $k => $v) {
  3.     if ($k===0)
  4.             $post="$v";
  5.     elseif ($k>0 and $k<6)
  6.             $post .= "$k=$v шт. <br>";
  7.     else
  8.             $post .= "$k=$v <br>";
  9.    }
  10. ?>
но возможно лучше в форме ввода изменения делать
хотя тут не особо важно
5. AngelofDem - 18 Сентября, 2011 - 10:33:01 - перейти к сообщению
Да да да спасибо то что нужно... В форме ввода изменения делать уже поздно) Таких страниц 1.5к.
(Добавление)
Ан нет поторопился... Беда в том что стро где нужно подписывать шт. n-ое количесто их может быть от 1 до 100... Поэтому надо как то отделить ещё и 2 последние строки...
6. LIME - 18 Сентября, 2011 - 10:40:45 - перейти к сообщению
если только 2 последние без шт
тогда можно так
PHP:
скопировать код в буфер обмена
  1.  <?PHP
  2.  $count=count($_POST)-3;
  3.  foreach($_POST as $k => $v) {
  4.     if ($k===0)
  5.             $post="$v";
  6.     elseif ($k>0 and $k<$count)
  7.             $post .= "$k=$v шт. <br>";
  8.     else
  9.             $post .= "$k=$v <br>";
  10.    }
  11. ?>
7. AngelofDem - 18 Сентября, 2011 - 10:54:38 - перейти к сообщению
Вот это уже ваще супер... Спассибо большое...
8. LIME - 18 Сентября, 2011 - 11:01:04 - перейти к сообщению
AngelofDem пишет:
Когда письмо только приходит то кодировка в Теме письма корявая
а чем смотрите письма
в вебе или клиентом?
если в вебе -посмотрите кодировку страницы вашего сервиса и перекодируйте ваши скрипты в нее
скорее всего utf
а клиент можно настроить под кодировку ваших скриптов
(Добавление)
или можно перекодировать только тему при отправлении перекодировать если все скрипты затруднительно
http://php.su/functions/?f=iconv

 

Powered by ExBB FM 1.0 RC1