За последние 24 часа нас посетили 17610 программистов и 1310 роботов. Сейчас ищут 849 программистов ...

Разбить заказ по частям

Тема в разделе "Работа с почтой", создана пользователем Panich, 28 авг 2012.

  1. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Доброго времени суток!
    Получаю это:
    Код (Text):
    1. nameP = implode(' , ',$_POST['nameP']);
    2. $packingP = implode(' , ',$_POST['packingP']);
    3. $inpP = implode(' шт. , ',$_POST['inpP']);
    4. $howMatchP = implode(' руб. , ',$_POST['howMatchP']);
    5.  
    6.  
    7.  
    8. $to = "123@list.ru";
    9. $sabject = "Заказ на продукцию с сайта";
    10. $massage = "Наименования: $nameP.\r\n Упаковка соответственно: $packingP.\r\n Количество позиций соответственно: $inpP шт.\r\n Общей суммой соответственно: $howMatchP руб. \r\n";
    Подскажите,как выводить из переменных данные по очереди?Т.е. сначала наименование одного продукта,потом его упаковка,количество,цена. Потом наименование второго продукта заказа и т.д...!?
     
  2. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Ну,если никто не хочет помогать,то подскажите,нужна ли валидация данных при отправке на почту?
    Т.е. получил данные,сгруппировал и отправил на почту...
     
  3. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    - убрать.
    Сгруппировать можно так:
    Код (PHP):
    1. $total = count($_POST['nameP']);
    2. $fields = array('nameP', 'packingP', 'inpP', 'howMatchP');
    3. $values = array();
    4. $message = '';
    5. for($i = 0; $i < $total; ++$i) {
    6.     foreach($fields as $field)
    7.         $values[$field] = isset($_POST[$field][$i]) ? $_POST[$field][$i] : 'не определено';
    8.     $message .= "Наименование: {$values['nameP']}\n";
    9.     $message .= "Упаковка: {$values['packingP']}\n";
    10.     $message .= "Кол-во позиций: {$values['inpP']}\n";
    11.     $message .= "Сумма: {$values['howMatchP']}\n\n";
    12. } 
    Если не заработает - нужен var_dump($_POST), чтобы было видно, в каком виде приходят данные.
    Письма в каком формате - html или простой текст? Если html - то нужно делать htmlspecialchars для всех пользовательских данных.
    И вот ещё почитай: http://ru.wikipedia.org/wiki/E-mail_инъекция

    Добавлено спустя 2 минуты 29 секунд:
    P.S. код можно ещё несколько сократить при желании :)
     
  4. Panich

    Panich Активный пользователь

    С нами с:
    10 май 2011
    Сообщения:
    548
    Симпатии:
    0
    Адрес:
    Ростов-Москва
    Спасибо большое!
    Скажите,а при иньекции при отправке почты проверки с помощью:
    Код (Text):
    1. trim
    2. get_magic_quotes_qpc
    3. stripslashes
    4. mysql_real_escape_string
    5. strip_tags
    6. htmlspecialchars
    хватит?Или лучше через preg_mach?