Jak wywołać przekierowanie przed zakończeniem skryptu php?
Chcę uruchomić skrypt php, który wyśle kilka e-maili (biuletynów), ale ponieważ może to chwilę potrwać, aby uruchomić, chcę, aby użytkownik został natychmiast przekierowany na stronę z komunikatem „Twoje biuletyny są w kolejce, aby być Wysłany."
Jak dotąd przekierowania nagłówka działają, ale nie powodują przekierowania, dopóki wszystkie wiadomości e-mail nie zostaną wysłane. Czy mogę zamknąć połączenie po wysłaniu przekierowania, aby przeglądarka natychmiast zareagowała na przekierowanie? Próbowałem takich rzeczy
<code> ob_start(); ignore_user_abort(true); header( "refresh:1;url=waitforit.php?msg=Newsletters queued up, will send soon."); header("Connection: close"); header("Content-Length: " . mb_strlen($resp)); echo $resp; //@ob_end_clean(); ob_end_flush(); flush(); </code>
w różnych permutacjach i kombinacjach, ale bezskutecznie. Podejrzewam, że nie można tego zrobić w prosty sposób, ale zanim zacznę bawić się zadaniami cron lub niestandardowymi demonami, pomyślałem, że zajrzę do tego podejścia. Dzięki
np. jak blokada sugeruje poniżej, ale nie ma szczęścia
<code>ob_start(); ignore_user_abort(true); header( "refresh:1;url=mailing_done.php?msg=Newsletters queued for sending."); header("Connection: close"); header("Content-Length: 0" ); //echo $resp; ob_end_flush(); flush(); </code>