Ik had eerst het volgende:
$cmd = "php scriptje.php > /dev/null &";
exec($cmd);
Zo kon ik mooi een batch proces starten. MAAR op de server hebben ze iets aangepast zodat ik opeens undefined function: mysql_connect() errors ga krijgen??? Via het web werkt alles nog wel, maar vanaf de commandline kent php ineens veel functies niet meer...
Nu wil ik het dus anders gaan oplossen door het script via de browser te laten starten zonder exec(). De browser hoeft echter NIET te wachten tot het script klaar is want dat kan wel even duren.
Ik zet in die pagina:
set_time_limit(3600);
ignore_user_abort(true);
Als de gebruiker het laden van de pagina afbreekt gaat deze dus gewoon netjes door. Het probleem is echter dat zodra je die pagina opvraagt de browser dus wel gaat wachten tot de pagina klaar is tenzij je zelf actie onderneemt.
Wat ik wil is zoiets:
set_time_limit(3600);
ignore_user_abort(true);
header("Location: started.html");
Doe iets zodat de browser denkt dat de pagina klaar is.
De rest van het script.
Is het mogelijk om de aan de browser te vertellen dat de pagina klaar is ZONDER dat hij dat werkelijk is, dus dat hij gewoon de header gaat uitvoeren?
Of is er een andere oplossing die het zelfde effect heeft, script starten via het web en dan naar een andere pagina gaan terwijl het script gewoon doorloopt?
$cmd = "php scriptje.php > /dev/null &";
exec($cmd);
Zo kon ik mooi een batch proces starten. MAAR op de server hebben ze iets aangepast zodat ik opeens undefined function: mysql_connect() errors ga krijgen??? Via het web werkt alles nog wel, maar vanaf de commandline kent php ineens veel functies niet meer...
Nu wil ik het dus anders gaan oplossen door het script via de browser te laten starten zonder exec(). De browser hoeft echter NIET te wachten tot het script klaar is want dat kan wel even duren.
Ik zet in die pagina:
set_time_limit(3600);
ignore_user_abort(true);
Als de gebruiker het laden van de pagina afbreekt gaat deze dus gewoon netjes door. Het probleem is echter dat zodra je die pagina opvraagt de browser dus wel gaat wachten tot de pagina klaar is tenzij je zelf actie onderneemt.
Wat ik wil is zoiets:
set_time_limit(3600);
ignore_user_abort(true);
header("Location: started.html");
Doe iets zodat de browser denkt dat de pagina klaar is.
De rest van het script.
Is het mogelijk om de aan de browser te vertellen dat de pagina klaar is ZONDER dat hij dat werkelijk is, dus dat hij gewoon de header gaat uitvoeren?
Of is er een andere oplossing die het zelfde effect heeft, script starten via het web en dan naar een andere pagina gaan terwijl het script gewoon doorloopt?