Форум → Программирование → PHP для идиотов → Отправка формы заказа с сайта на почт.ящик mail.ru
Отправка формы заказа с сайта на почт.ящик mail.ru
Страницы: ← Предыдущая страница →
-
6 декабря 2011 г. 19:15, спустя 32 минуты 16 секунд
kaylanger, ты лучше отчитайся по-полной как сделал, все ли получилось (в идеале выложи исправленный код, с которым все заработало), а потом уже будешь благодарить. -
6 декабря 2011 г. 20:39, спустя 1 час 24 минуты 21 секунду
Givi, Сообщения на ящик приходят. только вот в виде иероглифов:
Reply-To: [email protected]
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
п≤п╪я▐ п©п╬я│п╩п╟п╡я┬п╣пЁп╬: п╪п╦я┘п╟п╦п╩ п■п╟п╡я▀п╢п╬п╡
п╒п╣п╩п╣я└п╬п╫: 89043523200
п░п╢я─п╣я│:: п я─п╦п╡п╣п╫п╨п╬п╡п╟ 9 - 90
п°п╣п╫я▌ п≈п╟п╨п╟п╥п╟::
п▓я─п╣п╪я▐ п╥п╟п╨п╟п╥п╟:: 11.00-12.00
Плюс, не просчитываются и не выводятся кол-во блюд, которые я отметил галочкой (для примеры вот ссылка на страничку http://kompot-cafe.ru/order.htm).
я думаю вы поймете, что я имею ввиду.
Подскажите, пожалуйста, как мне исправить иероглифы на читаемый текст и что можно сделать с выводом блюд, которые просчитываются функцией foreach.
это тот пример, который вы мне предложили в качестве решения проблемы вывода блюд. он мне не помог.$orders = array('order1'=>'Ролл1','order2'=>'Ролл2');
if (isset($_POST['id'])
{
$order = $orders[$_POST['id']; // это если у тебя через $_POST['id'] передается строковая переменная, равная либо "order1" либо "order2"
}
else
{
exit('Вы, бля, укажите сначала что именно хотите!'); // тут вставишь нужное тебе действие
}
Вот полностью отредактированный код<?php
$orders = array(
'order1'=>'Ролл1',
'order2'=>'Ролл2'
);
$order='';
foreach($orders as $id=>$title){
if(isset($_POST[$id]))
$orders.="\n{$title}";
}
if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['adress'])) {$adress = $_POST['adress'];}
if (empty($name1))
{
echo "<b class=style5>Не указано имя!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
if (empty($phone))
{
echo "<b class=style5>Не указан телефон!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
if (empty($adress))
{
echo "<b class=style5>Не указан адрес!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
else
echo "<font class=style5>Получен заказ от: </font>".$_POST["name1"];
echo "<br><br><font class=style5>Контактный телефон: </font>".$_POST["phone"];
echo "<br><br><font class=style5>Адрес: </font>".$_POST["adress"];
echo "<br><br><font class=style5>Время доставки: </font>".$_POST["time"];
if(isset($_POST['order1'])) echo "<br><br><font class=style5>Ролл1</font>";
if(isset($_POST['order2'])) echo "<br><br><font class=style5>Ролл2</font>";
if($_POST['submit']) {
$name1 = htmlspecialchars(substr(trim($_POST['name1']), 0, 100));
$phone = htmlspecialchars(substr(trim($_POST['phone']), 0, 100));
$adress = htmlspecialchars(substr(trim($_POST['adress']), 0, 1000));
$to = "[email protected]"; /*УКАЗАТЬ СВОЙ АДРЕС!*/
$from = "[email protected]";
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name1 \nТелефон: $phone \nАдрес:: $adress\nМеню Заказа:: $order\nВремя заказа:: $time";
$verify = mail($to, $subject, $message,
"From: $from\r\n
Reply-To: $from\r\n
Content-Type: text/plain; charset=utf-8\r\n
Content-Transfer-Encoding: 8bit"
);
}
if ($verify = true)
{
echo "<b class=style5><br><br>Спасибо! Скоро Вам перезвонят для подтверждения заказа.<p>";
echo "<a href=index.htm class=style5>Нажмите,</a> чтобы вернуться на главную страницу";
}
else
{
echo "<br><br><font class=style5>Ошибка. Сообщение не отправлено!";
}
?> -
6 декабря 2011 г. 20:47, спустя 7 минут 46 секунд
Givi, Извиняюсьif ($verify = true)
исправил наif ($verify === true)
все равно на почту приходит уведомление ввиде кракозябр, а кол-во блюд не просчитывается. -
6 декабря 2011 г. 21:11, спустя 23 минуты 55 секунд
kaylanger, шли письма на английском или транслитом и не парьсяне всё полезно, что в swap полезло -
6 декабря 2011 г. 21:58, спустя 47 минут 8 секунд
kaylanger, ошибки не исправят "кракозяблы" в письме. Изначально задача была сделать так, чтоб хоть что-то отправлялось.
Теперь можно почитать вот это http://www.yaap.info/page/php-mail-otpravka-soobshhenij.
А по просчету, то уже завтра гляну если сам не сумеешь сделать. Сегодня работать больше желания совсем нет, пора уже посмотреть очередную серийку какого-то Private'овского фильмеца иподро…спать! -
7 декабря 2011 г. 0:50, спустя 2 часа 51 минуту 48 секунд
Givi, Код немного подправил. Уведомления с сайта теперь приходят в русской кодировке. Вот сообщение
ЗАКАЗ для Кафе Компот
От кого: [email protected]
Кому: [email protected]
7 декабря 2011, 00:43
Имя пославшего: Александр
Телефон: 89601772227
Адрес: ул. Московская 9 - 99
Меню Заказа:
Время заказа: 10.00-11.00
Как видно из данного сообщения, я так и не разобрался с просчетом и выводом Меню Заказа. Прошу вашей помощи!
Вот отредактированный код<?php
$orders = array(
'order1'=>'Ролл1',
'order2'=>'Ролл2'
);
$order='';
foreach($orders as $id=>$title){
if(isset($_POST[$id]))
$orders.="\n{$title}";
}
if (isset($_POST['name1'])) {$name1 = $_POST['name1'];}
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['adress'])) {$adress = $_POST['adress'];}
if (empty($name1))
{
echo "<b class=style5>Не указано имя!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
if (empty($phone))
{
echo "<b class=style5>Не указан телефон!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
if (empty($adress))
{
echo "<b class=style5>Не указан адрес!<p>";
echo "<a href=order.htm class=style5>Вернуться к заполнению формы заказа</a>";
exit;
}
else
echo "<font class=style5>Получен заказ от: </font>".$_POST["name1"];
echo "<br><br><font class=style5>Контактный телефон: </font>".$_POST["phone"];
echo "<br><br><font class=style5>Адрес: </font>".$_POST["adress"];
echo "<br><br><font class=style5>Время доставки: </font>".$_POST["time"];
if(isset($_POST['order1'])) echo "<br><br><font class=style5>Ролл1</font>";
if(isset($_POST['order2'])) echo "<br><br><font class=style5>Ролл2</font>";
if($_POST['submit']) {
$name1 = htmlspecialchars(substr(trim($_POST['name1']), 0, 100));
$phone = htmlspecialchars(substr(trim($_POST['phone']), 0, 100));
$adress = htmlspecialchars(substr(trim($_POST['adress']), 0, 1000));
$to = "[email protected]"; /*УКАЗАТЬ СВОЙ АДРЕС!*/
$from = "[email protected]";
$subject = "ЗАКАЗ для Кафе Компот";
$header = "From: \"Кафе Компот \" <[email protected]>\r\n";
$header = "Content-type: text/plain; charset=\"utf-8\"\r\n";
$message = "Имя пославшего: $name1 \nТелефон: $phone \nАдрес: $adress\nМеню Заказа: $order\nВремя заказа: $time";
$verify = mail($to, '=?UTF-8?B?'.base64_encode($subject).'?=', $message, $header,
"From: <[email protected]>\r\n
Reply-To: <[email protected]>\r\n
Content-Type: text/plain; charset=utf-8\r\n
Content-Transfer-Encoding: 8bit"
);
}
echo "<b class=style5><br><br>Спасибо! Скоро Вам перезвонят для подтверждения заказа.<p>";
echo "<a href=index.htm class=style5>Нажмите,</a> чтобы вернуться на главную страницу";
?> -
7 декабря 2011 г. 2:03, спустя 1 час 13 минут 27 секунд
так ёбаный ты ж хуй, ты ж смотри внимательно с какими перепенными ты работаешь.
естественно, что у тебя ордер пустая строка.<?php
$orders = array(
'order1'=>'Ролл1',
'order2'=>'Ролл2'
);
$order='';
foreach($orders as $id=>$title){
if(isset($_POST[$id]))
$orders.="\n{$title}";
}
?> -
7 декабря 2011 г. 13:46, спустя 11 часов 42 минуты 21 секунду
NRG, да я ему уже вчера об этом написал, но он проебал сделать все по каждому из пунктов. думал как раз сегодня отписаться, ибо если он и дальше будет нихуя сам не делать, то нахуй мне такой цирк :)
kaylanger, и тот кусок, что NRG указывает исправь, и лишнюю проверку POST-данных убери. И вообще логику скрипта немного пересмотреть бы не помешало, ибо у тебя проверка на наличие "submit" в POST'е идет в конце, в то время когда по сути нужно это в первую очередь проверить, и если она отсутствует (что говорит нам о том, что скрипт запускают напрямую, к примеру, из адресной строки), то сходу слать юзера нах!
Страницы: ← Предыдущая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!