Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> содержимое сессии по почту, как реализовать отправку данных 
V
    Опции темы
black_dragon
Дата 15.10.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.4.2007
Где: Рязань

Репутация: нет
Всего: нет



Доброго времени суток!

Возник вопрос след. содержания.

Делаю простенький интернет магазин, дошел до того момента, чтобы все заказы пользователя (храняться в сессии) отправить на почту.
Подскажите механизм реализации.
Заранее спасибо.
PM MAIL ICQ   Вверх
capitan
Дата 15.10.2009, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



Перебрать заказы из сессии, поместить в шаблон и отправить.
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 15.10.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



PM MAIL   Вверх
black_dragon
Дата 15.10.2009, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.4.2007
Где: Рязань

Репутация: нет
Всего: нет



Код

mail ("[email protected]", "My Subject", "$message");


Каким образом загнать в $message перебранные заказы из сесии.
Код

$message = "".foreach ($_SESSION['cart'] as $id => $kol) {
print($id." - ".$kol."<br><br>");
}
";

Так как-то? 

Если можно поподробнее, гуглил, но результата пока не вышло, может до меня чего не доходит просто.
PM MAIL ICQ   Вверх
Ипатьев
Дата 15.10.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Судя по всему, проблема не в почте, не в сессиях и даже не в массивах. 

black_dragon, если у вас есть две переменные, $a и $b, то чтобы получить переменную $c, в которой будут обе первые, то вы напишете
print $a.$b;
?
PM MAIL   Вверх
sTa1kEr
Дата 15.10.2009, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


9/10 программиста
***


Профиль
Группа: Завсегдатай
Сообщений: 1553
Регистрация: 21.2.2007

Репутация: нет
Всего: 146



PM MAIL   Вверх
black_dragon
Дата 15.10.2009, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.4.2007
Где: Рязань

Репутация: нет
Всего: нет



так он выведет два значения, а чтобы в $c, $с=$a.$b;
PM MAIL ICQ   Вверх
Ипатьев
Дата 15.10.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



а зачем вы тогда в приведенном выше коде делаете print, если вам нужно получить добавить переменные в $message?

у вас же все то же самое.
замените $c на $message, $a на $id и $b на $kol

Добавлено через 4 минуты и 8 секунд
Но сначала приведите код в порядок, а то у вас там какая-то кошмарная конструкция.
сделайте сначала foreach, который выводит через print, убедитесь, что выводит все как надо, и после этого просто замените print на присвоение переменной.

после этого выведите $message на экран, убедитесь, что выводит все как надо, и только после этого пишите отправку на почту
PM MAIL   Вверх
capitan
Дата 15.10.2009, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



"Люк Веллинг, Лора Томсон. Разработка Web-приложений с помощью PHP и MySQL. Издательский дом Вильямс, 2008"
Среди примеров: создание покупательской тележки для электронных магазинов, аутентификация пользователей....

Скачиваем и изучаем. 
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 15.10.2009, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Что-то эту книгу сильно ругали по-моему. 
И, насколько я помню, писалась она чуть ли не в прошлом веке. Вряд ли приведенный в ней код будет работать.

Тем более, что тележку автор уже создал, а проблема в выводе.
PM MAIL   Вверх
capitan
Дата 15.10.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



Ипатьев,  Код не так важен. Важно понять как все работает и написать под свою задачу.

Отправку тела заказа можно сделать так:

Код

function AddEmail($email = SHOP_MAIL, $message) {  
        $charset='WINDOWS-1251';
        $subject='Заказ с сайта '.$_SERVER['HTTP_HOST'];
        $encoded_subject="=?$charset?B?".base64_encode($subject)."?=\n";         
        $headers="From: Интернет магазин  \"".SHOP_NAME."\"\n"
        . "Content-Type: text/html; charset=$charset; format=flowed\n"
        . "MIME-Version: 1.0\n"
        . "Content-Transfer-Encoding: 8bit\n"
        . "X-Mailer: ".SITE_TITLE."\n";
        mail($email,$encoded_subject, $message, $headers);
    }


$message - html код
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 15.10.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



Для русского текста, кстати, порекомендую небольшую надстройку над mail
Код

function mymail($to, $subject, $message, $encoding="Windows-1251") {
  $subject = "=?$encoding?B?".base64_encode($subject)."?=";
  $headers = "Content-Type: text/plain; charset=$encoding\r\n"; 
  mail($to, $subject, $message, $headers);
}


Добавлено через 5 минут и 21 секунду
хехе, как мы синхронно-то smile
только у вас какой-то очень странное поле From

по неработающему коду невозможно понять, как он работает.
PM MAIL   Вверх
black_dragon
Дата 15.10.2009, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 13.4.2007
Где: Рязань

Репутация: нет
Всего: нет



Код

foreach ($_SESSION['cart'] as $id => $kol {
     $message=$id."-".$kol."<br>");
           print($message); // если здесь, то при нескольких товарах все хорошо выводит
                                       //9-3
                                       //11-8
}
print($message); // если здесь, то при нескольких товарах выводит только последний (т.к после цикла).



как мне сделать чтобы все товары были в  $message что-то типо накопления?
PM MAIL ICQ   Вверх
capitan
Дата 15.10.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: нет
Всего: 13



black_dragon, Вам же дали ссылку на мануал http://ru.php.net/operators.assignment
Код

$b = "1 ";
$b .= "2";
$b .= "3";
echo $b;


Результат будет  123
PM MAIL WWW ICQ   Вверх
icewind
Дата 15.10.2009, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 20



Код

foreach ($_SESSION['cart'] as $id => $kol {
     $message .= $id . "-" . $kol . "<br>";
}


Для отправки можно использовать phpmailer


--------------------
user posted image
PM MAIL Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1010 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.