У меня есть тип пользователя в том, как часто они хотят, чтобы сообщение отправлялось, как определено переменной $ time
Это код цикла у меня сейчас
$time = $_POST["time"];
for ($x = 0; $x < $amount; $x++) {
mail($completenum, $subject, $message, $headers);
sleep($time);
}
Проблема с этим кодом в том, что сообщения никогда не передаются, я полагаю, это потому, что функция сна останавливает сценарий. Есть идеи?
PHP не совсем правильный язык для этого, вы хотите попробовать javascript или подобный.
PHP разработан, чтобы позволить вам динамически создавать страницу, когда она загружена. Устанавливая режим сна, вы откладываете время загрузки страницы, и сервер и / или браузер в конечном итоге будут использовать тайм-аут — страницы не должны загружаться слишком долго, и это обычно указывает на ошибка. Разные браузеры будут делать разные вещи, и вам нужно будет изменить настройки тайм-аута на все, если задержка будет долгой.
Язык сценариев, который продолжает работать в браузере, сможет периодически запускать что-то, как вы хотите, и даже обновлять страницу — вам нужен код, который продолжает выполняться ПОСЛЕ загрузки страницы.
С другой стороны, если вы хотите использовать только PHP, ваш PHP-код может хранить запрос в базе данных, и тогда у вас может быть другая страница «обработки», которую вы периодически просматриваете с заданием cron или аналогичным в фоновом режиме, который отправляет электронные письма согласно задержка Существуют способы достичь того, чего вы хотите, только с помощью PHP, в зависимости от того, какой конечный результат вы хотите получить, но использование сна () для загрузки страницы, подобной этой, вряд ли будет надежным решением.
Других решений пока нет …