Отправка формы в скрипт php, который пользователь никогда не знает или не видит - PullRequest
3 голосов
/ 28 января 2012

На моем сайте есть функция, которая позволяет вам следить за обновлениями других пользователей.Когда пользователь вносит изменения в свою информацию, любой, кто следует за ним или ей, получит по электронной почте это изменение.

У меня настроено так, что php изменяет информацию в базе данных, а затем просматривает контакты пользователей.чтобы узнать, кто за ним следует, и отправляет электронные письма тем, кто подписывается, уведомляя их об изменении.

Проблема, с которой я столкнулся после добавления этой функции уведомлений, заключается в том, что страница загружается (формасообщений для себя) и показывая изменения почти мгновенно, (в зависимости от того, сколько людей подписалось на конкретного пользователя) может потребоваться несколько минут для загрузки страницы и показа обновления (потому что php отправляет все электронные письма перед страницейперезагружается).

Как я могу настроить его так, чтобы скрипт для отправки писем выполнялся где-то в фоновом режиме, и пользователю не нужно ждать отправки писем до перезагрузки страницы, иможет даже выйти из веб-сайта и по-прежнему отправлять электронные письма, если сценарий все ещеплохо бегаете?

PS Все мои навыки программирования и развития были самоучкой, поэтому я не знаю много терминологии ..... Возможно, вам придется придумывать свои ответы, чтобы я понял, чтоВы говорите о.Приносим извинения за неудобства и большое спасибо за любую помощь.

1 Ответ

1 голос
/ 28 января 2012

Я удивлен, что для отправки электронных писем требуется несколько минут, но в любом случае вы можете сделать это как минимум четырьмя способами:

  • Используйте ajax для отправки данных формы в отдельный скрипт, который отправляет электронные письма, пока форма отправляет сообщения нормально
  • Иметь форк сценария формы (pcntl обязательно)
  • Сделайте асинхронный запрос к вашей собственной странице через php (либо установите минимальное время ожидания с помощью cURL, либо откройте сокет)
  • Использование exec('script-that-sends-emails args >> some-other-file 2>&1 &');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...