|
kaylanger ↓
|
 |
|
06 Декабрь, 2011, 01:42:09
|
НЕ ХУЕТА!
ХУЕТА!
|
|
Карма: 0
Сообщений: 10 Сила слова: 0
|
Доброго времени суток! На сайте есть пункт "Сделать заказ" (доставка роллов, пиццы и т.п.).
Выбрав определенное кол-во продуктов и нажав кнопку "ПОДТВЕРДИТЬ ЗАКАЗ",
это сообщение (в виде формы заказа) должно отправиться с сайта на почтовый ящик kaylanger@mail.ru. Но по какой то причине это уведомление не приходит.
Обратился в службу поддержки хостинга сайта, т.к. вписывал функцию 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";
$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>Ошибка. Сообщение не отправлено!";
}
?>
Ниже форма заполнени заказа
<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
|
@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
$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. Этот кусок
foreach($orders as $id=> $title){
if(isset($_POST[$id]))
$orders.= "\n{$title}";
}
вообще полный ппц. У тебя есть массив, ты его раскладываешь и делаешь какой-то ппц. Если хочешь сделать присваивание имени заказа (Ролл1 или Ролл2), то коректно сделать примерно вот так:
$orders = array('order1'=> 'Ролл1', 'order2'=> 'Ролл2');
if (isset($_POST['id'])
{
$order = $orders[$_POST['id']; // это если у тебя через $_POST['id'] передается строковая переменная, равная либо "order1" либо "order2"
}
else
{
exit('Вы, бля, укажите сначала что именно хотите!'); // тут вставишь нужное тебе действие
}
3. Тут у тебя снова косяк (вообще я тебе в шаге 2 указал как корректно исправить это, но ты должен понять что ещё ты делаешь не так:
$order= '';
foreach($orders as $id=> $title){
if(isset($_POST[$id]))
$orders.= "\n{$title}";
}
Почему ты сначала инициализируешь переменную $order (как единичный заказ), а потом пытаешься присвоить имя уже другой (не инициализированной) переменной $order s (множественный заказ).
4. Зачем разбивать ТЕКСТ (тело) письма по 70 символов в строку? Я про $message = wordwrap($message, 70);
Разбивка может касаться заголовков, но текст пиши хоть в одну строку.
5. if (isset($_POST['name1'])) {$name1 = $_POST['name1'];} - почему ты тут проверяешь только наличие переменной, а не делаешь сразу же проверку на заполненность? Да и вообще, раз передается форма, в которой было поле "name1", то по-любому в массиве $_POST такой ключ будет присутствовать. Так что лишняя проверка у тебя.
Пока все. Исправишь это, будем думать дальше, мне пора работать.
|
|
|
|
|
Записан
|
Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь. Если человек дурак, то... чур это не я!
|
|
|
|