Добрый день, вопрос такой, есть форма отправки сообщения, все работает, единственное смена сообщений с "форма отправки" до "Cообщение успешно отправленно." после нажатия на кнопку "отправить" составляет примерно 5сек. По мне так это долго. Можно как-нибудь ускорить процесс смены вывода echo?
if (!empty($_POST))
{
$name = htmlspecialchars(stripslashes($_POST['name']));
$mess = htmlspecialchars(stripslashes($_POST['text']));
$mail = htmlspecialchars(stripslashes($_POST['email']));
if(empty($_POST['email']))
{
echo "<p>Вы не указали свой E-mail!</p>";
}
elseif (!preg_match("/^[0-9a-z_\.]+@[0-9a-z_^\.]+\.[a-z]{2,6}$/i", $mail))
{
echo "<p>Вы ввели некорректный E-mail!</p>";
}
else
{
$to = 'email@mail.ru' . ', ';
$from = 'email2@mail.ru';
$subject = "Сообщение с сайта";
$message = "Имя: ".$name. "\r\nПочта: ".$mail."\r\nСообщение: ".$mess.';';
$headers = "Content-type: text/plain; charset=UTF-8 \r\n";
$headers .= "From: <vmail2@mail.ru>\r\n";
$result = mail($to, $subject, $message, $headers);
if ($result){
echo "<p>Cообщение успешно отправлено.</p>";
}
else{
echo "<p>Cообщение не отправлено. Пожалуйста, попробуйте еще раз</p>";
}
}
}
Конечно можно. Обработайте запрос пользователя и сохраните сообщение где-нибудь (например в базе данных), после этого сообщите пользователю, что сообщение отправлено. А уведомление на почту отправляйте отдельным скриптом, например, запускающимся по расписанию (cron). То есть каждые пять минут скрипт проверяет нет ли новых сообщений от пользователей и если есть, то рассылает уведомления на почту.
Можно ещё отправлять сообщения js'ом, без перезагрузки страницы. Тогда можно сделать Отправка... -> Отправлено! Пользователи будут довольны даже если ваш сервер немного задумается.
Подробнее
На виртуальных хостингах обычно есть "кнопка" (пункт в меню, раздел настроек) для настройки планировщика cron. Идея в том, чтобы добавить в него регулярный запуск (раз в пять минут, например) вашего скрипта, который будет проверять наличие новых сообщений и отправлять уведомления на почту.
При разработке вам cron не нужен, надо только протестировать команду, которую он будет выполнять.
Как сохранять новые сообщения. Лучше всего в базу данных, например в SQLite или MySQL. Для работы с ними в PHP есть библиотека PDO. Опыт работы с базами данных вам обязательно пригодится, поэтому не поленитесь разобраться как это работает.
После того, как сохранили сообщение в базе, можно сообщить пользователю о успехе отправки (его сообщение теперь не потеряется).
Для радости пользователей запрос на отправку часто отправляется AJAX'ом. То есть, пользователь жмёт кнопку отправить, но вместо стандартного перехода на страницу отправки, запрос выполняется незаметно для пользователя (при этом у него обычно отображается какой-нибудь спиннер "идёт отправка"), а когда запрос отработал текущая страница модифицируется и пользователь видит сообщение об успехе/неудаче.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В переменных хранятся данные типа 3,5,25,49 Мне нужно найти пересечения в этих списках
Привет!Захожу я в хром и думаю,почему кнопка модального окна не работает а тут ошибка