Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 25 Май, 2012, 07:33:34

Страниц: [1] 2
Печать
Автор Тема: Отправка формы заказа с сайта на почт.ящик mail.ru  (Прочитано 303 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kaylanger    ↓ 
06 Декабрь, 2011, 01:42:09
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

Доброго времени суток! На сайте есть пункт "Сделать заказ" (доставка роллов, пиццы и т.п.).
Выбрав определенное кол-во продуктов и нажав кнопку "ПОДТВЕРДИТЬ ЗАКАЗ",
это сообщение (в виде формы заказа) должно отправиться с сайта на почтовый ящик kaylanger@mail.ru. Но по какой то причине это уведомление не приходит.
Обратился в службу поддержки хостинга сайта, т.к. вписывал функцию mail() по их рекомендации с их же сайта.
Проверили.
Сказали, что с их скриптом все впорядке. По видимому причина кроется до функции mail().
 
Друзья, подскажите, пожалуйста, как исправить эту ошибку!
 
Вот PHP код
 
PHP
<?PHP
                                $orders = array(
'order1'=>'Ролл1',
'order2'=>'Ролл2'
);     
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"];
$order='';
foreach($orders as $id=>$title){
        if(isset($_POST[$id]))
        $orders.="\n{$title}";
}
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 = "kaylanger@mail.ru"; /*УКАЗАТЬ СВОЙ АДРЕС!*/
$from = "mail@kompot-cafe.ru";
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name1 \nТелефон: $phone \nАдрес:: $adress\nМеню Заказа:: $order";
$verify = mail($to, $from, $subject, $message,
"From: $from
Reply-To: $from
Content-Type: text/plain; charset=windows-1251
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>Ошибка. Сообщение не отправлено!";
}
?>

Ниже форма заполнени заказа
 
HTML
<form action="action.php" method="post" id="form1">
               <label><input type="checkbox" name="order1" value="roll1"><img src="images/logo_mess.png">ролл1</label>
               <label><input type="checkbox" name="order2" value="roll2"><img src="images/logo_mess.png">ролл2<br><br></label>
               
                <label>Фамилия Имя Отчество<br><input type="text" name="name1" size="55">
<br><font class="style1">Пример: Иванов Иван Иванович</font></label><br><br>
                <label>Контактный телефон<br><input  type="text" name="phone" size="55"><br>
                <font class="style1">Пример: 8-987-654-32-10 </font></label><br><br>
                Время доставки:<br>
                <select name="time">
                <option value="10.00-11.00">10.00-11.00</option>
                <option value="11.00-12.00">11.00-12.00</option>
                <option value="12.00-13.00">12.00-13.00</option>
                <option value="13.00-14.00">13.00-14.00</option>
                <option value="14.00-15.00">14.00-15.00</option>
                <option value="15.00-16.00">15.00-16.00</option>
                <option value="16.00-17.00">16.00-17.00</option>
                <option value="17.00-18.00">17.00-18.00</option>
                <option value="18.00-19.00">18.00-19.00</option>
                <option value="19.00-20.00">19.00-20.00</option>
                <option value="20.00-21.00">20.00-21.00</option>
                <option value="21.00-22.00">21.00-22.00</option>
                <option value="22.00-23.00">22.00-23.00</option>
                </select>
<br><font class="style1">Выбирите удобное для Вас время доставки</font><br><br>
                <label>Адрес доставки:<br><textarea name="adress" cols="50" rows="4"></textarea>
<br><font class="style1">Пример: ул. Советская, д.1, кв.1 </font></label><br><br>
               
                <label><input type="reset" name="reset1" value="Очистить форму"></label>
                <label><input type="submit" name="submit1" value="ПОДТВЕРДИТЬ ЗАКАЗ"></label>
</form>

Заранее спасибо!
Записан
Sinkler    ↓ 
06 Декабрь, 2011, 01:54:18 , спустя 12 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6808
Сила слова: 1.07

kompot-cafe.ru
мило
 
а на другие ящики пробовал?
Спустя 2 минуты 59 секунд добавил
вообще, советую юзать готовые классы для отправки писем. при этом лучше отправлять через smtp с существующего ящика с нормального сервера
Записан

kaylanger    ↓ 
06 Декабрь, 2011, 01:59:11 , спустя 4 минуты 53 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0


kompot-cafe.ru
мило
 
а на другие ящики пробовал?
Спустя 2 минуты 59 секунд добавил
вообще, советую юзать готовые классы для отправки писем. при этом лучше отправлять через smtp с существующего ящика с нормального сервера

на другие ящики не пробовал. специалисты с этой хостинг компании высылали тест-уведомление с моего сайта. все нормально. на почту приходит. но вот почему то мой скрипт не работает. точнее будет сказано сообщение отправляется, но на ящик не доходит. хотя, я повторюсь, я использовал функцию mail(), которая у них на сайте выложена для отправки уведомлений (они мне посоветовали ее использовать)
Записан
Sinkler    ↓ 
06 Декабрь, 2011, 02:02:32 , спустя 3 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6808
Сила слова: 1.07

на другие ящики не пробовал.
почему бы не попробовать?)
 
точнее будет сказано сообщение отправляется, но на ящик не доходит.
папку спам смотрел?)))
Записан

Givi    ↓ 
06 Декабрь, 2011, 02:05:01 , спустя 2 минуты 29 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

kaylanger, mail($to, $from, $subject, $message... - лишний аргумент у функции. Какой - найди в мануале.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
kaylanger    ↓ 
06 Декабрь, 2011, 02:10:57 , спустя 5 минут 56 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

папку спам смотрел?)))
смотрел. все чисто :(
почему бы не попробовать?)
попробую на gmail
 
Вообще мне посоветовали тщательно пересмотреть код до функции mail(). видимо там ошибка.  
Спустя 59 секунд добавил
mail($to, $from, $subject, $message... - лишний аргумент у функции. Какой - найди в мануале.
это случайно не $from?
Записан
Sinkler    ↓ 
06 Декабрь, 2011, 02:13:22 , спустя 2 минуты 25 секунд
НЕ ХУЕТА! ХУЕТА!

Похуй, пляшем!
Группа: Джедаи

Карма: 73
Сообщений: 6808
Сила слова: 1.07

Givi, ты еще и в код смотришь :DDDD
Спустя 47 секунд добавил
это случайно не $from?
ага, оно формируется в теле запроса
Спустя 1 минуту 6 секунд добавил
kaylanger, а ты вообще кто по профессии/чем занимаешься?
Записан

kaylanger    ↓ 
06 Декабрь, 2011, 02:22:58 , спустя 9 минут 36 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

а ты вообще кто по профессии/чем занимаешься?
профессии у меня пока что нет. учусь. насчет программирования - я далеко не профи. поэтому обратился за помощью сюда.
Записан
kaylanger    ↓ 
06 Декабрь, 2011, 02:29:51 , спустя 6 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0

а на другие ящики пробовал?
попробовал на gmail. все равно уведомление не пришло. может есть еще какие нибудь идеи?
Записан
Ivan    ↓ 
06 Декабрь, 2011, 03:34:07 , спустя 1 час 4 минуты 16 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98


а на другие ящики пробовал?
попробовал на gmail. все равно уведомление не пришло. может есть еще какие нибудь идеи?
 

Соединяйся сокетом по xmpp с вконтакте и отправляй туда сообщение юзеру, у юзера поставь отсылку смс на мобильный телефон (вроде контакт такую фичу держит)
Альтернатива - используй твиттер апи и симку билайна, пости с аккаунта заказов через апи твиттера и на аккаунте с симкой билайна поставь "читать+смс"
 
Имхо куда лучше для таких сервисов чтобы приходило на смс, а не на мыло.
Записан

Status    ↓ 
06 Декабрь, 2011, 08:16:08 , спустя 4 часа 42 минуты 1 секунду
НЕ ХУЕТА! ХУЕТА!

Редкостная сволочь
Группа: Джедаи

Карма: 57
Сообщений: 1447
Сила слова: 3.94

насчет программирования - я далеко не профи
А ведь смешно:D
Спустя 4 минуты 46 секунд добавил
А идея билять такая, там где у тебя написано под /*УКАЗАТЬ СВОЙ АДРЕС!*/, поставь мыло зарегистрированное на тот же домен что и сам сайт, многие хостеры запрещают отправку с левых мыл:D Спамерюга:D
« Последнее редактирование: 06 Декабрь, 2011, 08:16:08 от Status » Записан

Заткнись говно, я воевал!
Givi    ↓ 
06 Декабрь, 2011, 10:57:47 , спустя 2 часа 41 минуту 39 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

kaylanger, ты разобрался с функцией mail(), скинь ту строку, которой её вызываешь, глянем что ты теперь в неё передаешь.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
phpdude    ↓ 
06 Декабрь, 2011, 02:22:40 , спустя 3 часа 24 минуты 53 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 345
Сообщений: 20790
Сила слова: 1.66

Python
@render
def view(request, slug):
    page = get_object_or_404(Page, slug=slug)
    request.breadcrumbs(page.title, None)
 
    if not page.published and not request.user.is_staff:
        raise Http404(u'Страница "%s" еще не опубликована' % page.title)
 
    return {"page": page}
 
=)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
kaylanger    ↓ 
06 Декабрь, 2011, 06:11:56 , спустя 3 часа 49 минут 16 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 10
Сила слова: 0


kaylanger, ты разобрался с функцией mail(), скинь ту строку, которой её вызываешь, глянем что ты теперь в неё передаешь.

вот код. кое что исправил, то что посоветовали на форумах. все равно не помогло. видимо действительно ошибка возникает до функции mail()
 
PHP
<?php
                $orders = array(
'order1'=>'Ролл1',
'order2'=>'Ролл2'
)
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"];
$order='';
foreach($orders as $id=>$title){
    if(isset($_POST[$id]))
    $orders.="\n{$title}";
}
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 = "kaylanger@mail.ru"; /*УКАЗАТЬ СВОЙ АДРЕС!*/
$from = "mail@kompot-cafe.ru"
$subject = "Сообщение с вашего сайта";
$message = "Имя пославшего: $name1 \nТелефон: $phone \nАдрес:: $adress\nМеню Заказа:: $order";
$message = wordwrap($message, 70);
$verify = mail($to, $subject, $message,
"From: $from\r\n
Reply-To: $from\r\n
Content-Type: text/plain; charset=windows-1251\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>Ошибка. Сообщение не отправлено!";
}
?>
Записан
Givi    ↓ 
06 Декабрь, 2011, 06:37:00 , спустя 25 минут 4 секунды
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

kaylanger,
 
1. if ($verify = true) - косяк. Так ты делаешь операцию присваивания, а не проверку равенства. Один знак = не то же самое что два знака == (или даже три знака ===).
 
2. Этот кусок
PHP
foreach($orders as $id=>$title){
    if(isset($_POST[$id]))
    $orders.="\n{$title}";
}
вообще полный ппц. У тебя есть массив, ты его раскладываешь и делаешь какой-то ппц. Если хочешь сделать присваивание имени заказа (Ролл1 или Ролл2), то коректно сделать примерно вот так:
PHP
$orders = array('order1'=>'Ролл1','order2'=>'Ролл2');
if (isset($_POST['id'])
{
    $order = $orders[$_POST['id']; // это если у тебя через $_POST['id'] передается строковая переменная, равная либо "order1" либо "order2"
}
else
{
   exit('Вы, бля, укажите сначала что именно хотите!'); // тут вставишь нужное тебе действие
}

3. Тут у тебя снова косяк (вообще я тебе в шаге 2 указал как корректно исправить это, но ты должен понять что ещё ты делаешь не так:
PHP
$order='';
foreach($orders as $id=>$title){
    if(isset($_POST[$id]))
    $orders.="\n{$title}";
}
Почему ты сначала инициализируешь переменную $order (как единичный заказ), а потом пытаешься присвоить имя уже другой (не инициализированной) переменной $orders (множественный заказ).
 
4. Зачем разбивать ТЕКСТ (тело) письма по 70 символов в строку? Я про $message = wordwrap($message, 70);
Разбивка может касаться заголовков, но текст пиши хоть в одну строку.
 
5. if (isset($_POST['name1'])) {$name1 = $_POST['name1'];} - почему ты тут проверяешь только наличие переменной, а не делаешь сразу же проверку на заполненность? Да и вообще, раз передается форма, в которой было поле "name1", то по-любому в массиве $_POST такой ключ будет присутствовать. Так что лишняя проверка у тебя.
 
Пока все. Исправишь это, будем думать дальше, мне пора работать.
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
Страниц: [1] 2
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd