In een webapplicatie waaraan ik bezig ben roept een php pagina op een andere webserver (van een leverancier) een .asp script aan om daar dingen in een database te laten zetten. Dit kan even duren (enkele seconden) en ik heb er geen uitvoor van nodig voor de loop van mijn php script.
Mijn idee was dus het volgende:
Dit werkt echter niet goed in IE (6 en 7) deze blijft namelijk toch wachten na de redirect header. FF gaat wel gelijk door naar de volgende pagina.
Ik heb de gewoonte na een Location header altijd een "exit;" te geven zodat het script niet doorloopt.
Mijn logica was dus dat zonder die "exit;" het script door gaat terwijl de browser al geredirect is.
De volgende testcode toont hetzelfde probleem, na de Location header blijft IE wachten tot het script klaar is, terwijl FF en Opera gelijk redirecten. Na 10 seconden verschijnt in alle gevallen het testbestand.
Iemand enig idee hoe dit probleem op te lossen / te omzeilen valt?
Mijn idee was dus het volgende:
PHP:
1
2
3
4
5
6
7
| //invoer checken //gegevens opslaan in lokale db // -> alle belangrijke dingen met resultaat gehad header("Location: http://www.domein.nl/pagina_met_bevestiging_van_invoer.php"); //Verbinding maken via sockets naar .asp script bij leverancier |
Dit werkt echter niet goed in IE (6 en 7) deze blijft namelijk toch wachten na de redirect header. FF gaat wel gelijk door naar de volgende pagina.
Ik heb de gewoonte na een Location header altijd een "exit;" te geven zodat het script niet doorloopt.
Mijn logica was dus dat zonder die "exit;" het script door gaat terwijl de browser al geredirect is.
De volgende testcode toont hetzelfde probleem, na de Location header blijft IE wachten tot het script klaar is, terwijl FF en Opera gelijk redirecten. Na 10 seconden verschijnt in alle gevallen het testbestand.
PHP:
1
2
3
4
5
6
7
8
9
| header("Location: http://www.tweakers.net", True, 302); ob_flush(); flush(); sleep(10); $fh = fopen("d:\\testfile.txt", 'w'); fwrite($fh, "helle world"); fclose($fh); |
Iemand enig idee hoe dit probleem op te lossen / te omzeilen valt?