Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 9

PHP форма не отправляет

19.10.2014, 19:08. Показов 1940. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят. Всем привет.
В итоге ситуация такая.
вот мой сайт: http://remkachestvo.ru

У меня на сайте 2 формы.
1) order.php Форма заявки
2) send.php Форма обратной связи

Вроде как написал их правильно.
Но, сообщения приходят с вероятностью 15%.
И то если приходят то через минут 20.
Что делать? помогите.

Вот форма заявки:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['phone'])) {$phone = $_POST['phone'];}
if (isset($_POST['after'])) {$after = $_POST['after'];}
if (isset($_POST['before'])) {$before = $_POST['before'];}
if (isset($_POST['work'])) {$work = $_POST['work'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['quest'])) {$quest = $_POST['quest'];}
 
$to = "remkachestvo@mail.ru";
$headers = "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
$subject = "Заявка с сайта «RemKachestvo.Ru»";
$message = "<p>Заявка с сайта «RemKachestvo.Ru»</p>
\n<p><strong>Имя:</strong> $name</p>
\n<p><strong>Тел:</strong> $phone</p>
\n<p><strong>Дата начала работы:</strong> $after</p>
\n<p><strong>Дата окончания работы:</strong> $before</p>
\n<p><strong>Нужная услуга:</strong> $work</p>
\n<p><strong>E-mail:</strong> $email</p>
\n<p><strong>Вопрос:</strong> $quest</p>";
$send = mail ($to, $subject, $message, $headers);
  header( "Location: http://remkachestvo.ru/send.html" );
?>
Вот форма обратной связи:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
if (isset($_POST['name'])) {$name = $_POST['name'];}
if (isset($_POST['email'])) {$email = $_POST['email'];}
if (isset($_POST['quest'])) {$quest = $_POST['quest'];}
 
$to = "remkachestvo@mail.ru";
$headers = "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
$subject = "Заявка с сайта «RemKachestvo.Ru»";
$message = "<p>Сообщение от « RemKachestvo.Ru »</p>
\n<p><strong>Имя:</strong> $name</p>
\n<p><strong>Email:</strong> $email</p>
\n<p><strong>Вопрос:</strong> $quest</p>";
$send = mail ($to, $subject, $message, $headers);
  header( "Location: http://remkachestvo.ru/send.html" );
?>
Как я понял, я попобаю под спам фильтр. вродебы..
Ребят я бы понял всё с обычных подсказок. Но я новичек.
Поэтому прошу УМОЛЯЮ не злитесь) и напишите что и как должно быть.
С ув.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.10.2014, 19:08
Ответы с готовыми решениями:

Форма не отправляет данные
Здравствуйте! Не так давно начал изучать пхп, сейчас пишу свой блог. Вот решил сделать возможность комментировать записи в блоге.Но...

Форма не отправляет кавычки
Друзья, подскажите пожалуйста как отправить кавычки ' &quot; в базу данных? Например хочу отправить текст (технической фирме Cisco, чтобы...

Форма регистрации не отправляет запросы в БД
Помогите разобраться в чем ошибка, в общем цель такая при нажатии на кнопку &quot;зарегестрироваться&quot; с именем &quot;register&quot;, должна...

10
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
19.10.2014, 19:59
Цитата Сообщение от Georka Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset($_POST['name'])) {
$name = $_POST['name'];
} 
if (isset($_POST['phone'])) {
$phone = $_POST['phone'];
} 
if (isset($_POST['after'])) {
$after = $_POST['after'];
} 
if (isset($_POST['before'])) {
$before = $_POST['before'];
} 
if (isset($_POST['work'])) {
$work = $_POST['work'];
} 
if (isset($_POST['email'])) {
$email = $_POST['email'];
} 
if (isset($_POST['quest'])) {
$quest = $_POST['quest'];
}
к чему у вас эта помойка из кода? красоты это не добавляет и смысла тем более

Добавлено через 38 секунд
Цитата Сообщение от Georka Посмотреть сообщение
Но, сообщения приходят с вероятностью 15%.
И то если приходят то через минут 20.
причина может быть именно в помойке
1
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 9
19.10.2014, 20:03  [ТС]
а как должно быть?? помогите прошууу
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
19.10.2014, 20:13
Цитата Сообщение от Georka Посмотреть сообщение
а как должно быть?? помогите прошууу
Сделайте проверку нажатой кнопки, например:
PHP
1
if (isset($_POST['submit']))
после чего проверяйте заполнены ли поля или нет, и если надо выводите ошибку при пустом поле:
PHP
1
2
3
4
    if (empty($_POST['name']))
    {
        echo 'Поле Имя осталось пустым. Пожалуйста заполните все поля.';
    }
0
0 / 0 / 0
Регистрация: 19.10.2014
Сообщений: 9
19.10.2014, 21:46  [ТС]
Сделал вот так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$name = $_REQUEST['name'];
$phone = $_REQUEST['phone'];
$after = $_REQUEST['after'];
$before = $_REQUEST['before'];
$work = $_REQUEST['work'];
$email = $_REQUEST['email'];
$quest = $_REQUEST['quest'];
$headers= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html;charset=utf-8 \r\nFrom:$email";
 
$message = "<p>Заявка с сайта «RemKachestvo.Ru»</p>
\n<p><strong>Имя:</strong> $name</p>
\n<p><strong>Тел:</strong> $phone</p>
\n<p><strong>Дата начала работы:</strong> $after</p>
\n<p><strong>Дата окончания работы:</strong> $before</p>
\n<p><strong>Нужная услуга:</strong> $work</p>
\n<p><strong>E-mail:</strong> $email</p>
\n<p><strong>Вопрос:</strong> $quest</p>";
 
mail( "remkachestvo@mail.ru", "RemKachestvo.Ru",
    $message, $headers );
  header( "Location: http://remkachestvo.ru/send.html" );
?>
И вроде как нормально работает..
Вот только теперь сообщения приходят сразу но не всегда.
Тоесть как я понял не все отсылаются...
Как это исправить?

Добавлено через 1 минуту
Может ли это быть из-за того что у меня метод POST ??
У меня вот так сейчас:
<form action="/order.php" method="post" id="contact-form">
0
> /dev/null
 Аватар для Блеф
286 / 119 / 86
Регистрация: 14.05.2014
Сообщений: 767
19.10.2014, 22:07

Не по теме:

Raisin Zn, извините но советчик вы так себе.
Человек спросил как правильно переписать этот код

Кликните здесь для просмотра всего текста

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if (isset($_POST['name'])) {
$name = $_POST['name'];
} 
if (isset($_POST['phone'])) {
$phone = $_POST['phone'];
} 
if (isset($_POST['after'])) {
$after = $_POST['after'];
} 
if (isset($_POST['before'])) {
$before = $_POST['before'];
} 
if (isset($_POST['work'])) {
$work = $_POST['work'];
} 
if (isset($_POST['email'])) {
$email = $_POST['email'];
} 
if (isset($_POST['quest'])) {
$quest = $_POST['quest'];
}

А вы мало того что усложнили ему код, так еще предлагаете ему работать с POST на прямую??



Насчет того что не приходят, возможно проблема в вашем почтовом сервисе.

Добавлено через 4 минуты
А для приема и фильтрации данных используйте filter_input_array()
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
20.10.2014, 00:55
вот нормальный скрипт, пока вроде проблем с ним не было
PHP
1
2
3
4
5
6
7
8
$tema = "тема сообщения";
$massage = "текст сообщения";
$to = "здесь адрес кому";
$from = "здесь адрес от кого";
$subject = $tema;
$subject = "=?utf-8?b?".base64_encode($subject)."?=";
$headers = "From: $from\r\nReply-to:$from\r\nContent-type:text/html;charset=utf-8\r\n";
mail($to, $subject, $massage, $headers);
Еще важно, многие забывают, но вот там где указывается адрес отправителя(переменная from) должен быть указан не просто реальный адрес, а тот что создан на хостинге с которого письма то и отправляться. К примеру Ваш сайт, который отправляет письма называется horosho.com то email такого сайта будет(обычно) admin@horosho.com, это я к примеру. Главное чтоб он был не с фига взят, а реальным ящиком на сервере. В противном случаи могут быть вот такие карусели - то не пришло, то пришло но в спам.
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
20.10.2014, 06:17
Цитата Сообщение от bleef159 Посмотреть сообщение
Raisin Zn, извините но советчик вы так себе.
Любопытно, что с моим советом не так?
Цитата Сообщение от bleef159 Посмотреть сообщение
Человек спросил как правильно переписать этот код
А я показал не правильный пример?
Цитата Сообщение от bleef159 Посмотреть сообщение
А вы мало того что усложнили ему код, так еще предлагаете ему работать с POST на прямую??
Не усложнил, а подсказал, как будет лучше. А значение POST можно назначить обычную переменную, там где удобно будет ТС.
Цитата Сообщение от prudkiy Посмотреть сообщение
Главное чтоб он был не с фига взят, а реальным ящиком на сервере.
У меня приходит с любой почты.
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
20.10.2014, 07:31
Georka, я Вам рекомендую использовать phpMailer. Во-первых - с ним просто работать, во-вторых - он проставляет необходимые заголовки письма, так что вероятность доставки писем повышается, спам-фильтры не блокируют.
0
 Аватар для prudkiy
181 / 149 / 55
Регистрация: 21.07.2013
Сообщений: 958
21.10.2014, 00:03
У меня приходит с любой почты.
Я вас конечно мог бы с этим поздравить, но ведь сами подумайте, получается тогда вы можете указать абсолютно любой адрес на который будет отправлено письмо при ответе. И к сожалению оно так и есть, в 90% письма отправляются не зависимо является ли обратный адрес верным и если так то согласен ли владелец этого email-а с этим. Как на меня это недочет и его нужно исправлять.
Хотя раньше тоже не брал это во внимание, но как то раз при переносе сайта на удаленный сервер клиента письма совсем не отправлялись, вот тогда я связался с службой поддержки того хоста и там мне все нормально объяснили.
Было такое что объяснял клиенту о необходимости создания ящика на хосте(около часа, мы с ним чуть не посрались), он ничего не хотел слушать, сказал мне выдуманный адрес, пусть так - хозяин барин, все и так работало вроде как норм. Но через не долгое время он мне пожаловался на то что письма стали приходить в спам - причина, как выяснилось, была все в том же.
Поэтом, что Вы не говорите, а email адрес должен быть реальным и зарегистрирован на том сервере который эти письма отправляет. Это есть правильно и не занимает много времени.
0
 Аватар для Raisin Zn
101 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 965
21.10.2014, 08:23
Цитата Сообщение от prudkiy Посмотреть сообщение
адрес должен быть реальным и зарегистрирован на том сервере который эти письма отправляет
Соглашусь, только с тем, что адрес должен быть реальным. А то что от сервера, который отправляет - нет.
Как говорится у каждого свои тараканы, Вам удобней так (как пишите Вы), мне так (как пишу я). Реальный ящик должен быть, что бы пользователь мог, например послать ответное письмо, при каком то оповещении.

У меня на разных движка (сервер правда один) стоит один ящик от Яндекса. Этот ящик я использую не тока для получения оповещений со своих сайтов, но и для обычной переписки, регистрируясь на других ресурсов я использую его же, но это не важно... Я открываю свою почту и сразу вижу, что и кто мне там понаписал. А если мои ресурсы будут на разных серверах и для каждого проекта я буду делать отдельно почтовый ящик, а потом лазить по почтовикам и проверять есть ли письмо или нет - мне это не нравится, не из-за моей лени, а просто не нравится.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.10.2014, 08:23
Помогаю со студенческими работами здесь

Форма не отправляет сообщение на почту
Здравствуйте. Форма на сайте не отправляет сообщения на почту, помогите разобраться &lt;?php /* Здесь проверяется существование...

Форма не отправляет данные в обработчик
Здравствуйте. Не могу понять почему не работает скрипт. Имеются 2 файла index.php (вывод текущих записей и форма) и update.php...

Форма отправляет только <20 файлов
Доброго времени суток! Имеется форма, в которой следующая строка: &lt;input type=&quot;file&quot; id=&quot;fileselect&quot;...

Почему форма отправки не отправляет данные?
&lt;?php $name = $_POST; //ИМЯ $name = htmlspecialchars($name); $name = urldecode($name); $name = trim($name); $famel = $_POST;...

Форма обратной связи не отправляет сообщения
Добрался до формы с обратной связью. По идее все легко и просто, но вот почему то не хочет отправлять письма. Уже скачал готовые, пишет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru