cript läuft nach Browser-Abbruch weiter

cript läuft nach Browser-Abbruch weiter

am 15.06.2006 23:19:08 von Karl Rambusek

Habe folgendes Problem: Script läuft nach Browser-Abbruch weiter.
Starte diese Script über den Browser, klicke auf "Abbrechen", das Dummy-
File vergössert sich jedoch jede Sekunde. Hab schon einiges ausprobiert zB.
mit register_shutdown_function() den fh schließen, ohne Erfolg. Verwende
(Apache 2.054, PHP 5.1.4, @Fedora core 3)
Kann wer den Fehler reproduzieren, oder liegt es vielleicht an meiner conf
!?

Hier das kleine Testscript zur Veranschaulichung.

ignore_user_abort(FALSE);

$fh=fopen("dummy.txt","w");

while(true)
{
sleep (1);
fwrite($fh, "test..");
}
?>

Re: cript läuft nach Browser-Abbruch weiter

am 15.06.2006 23:33:57 von do.not.REMOVETHAT

Karl Rambusek schrieb:

> Habe folgendes Problem: Script läuft nach Browser-Abbruch weiter.

> while(true)
> {
> sleep (1);
> fwrite($fh, "test..");
> }

....weil das Script nicht merkt, dass Du im Browser auf "Abbrechen"
geklickt hast. Es kann das nicht merken, weil es mit dem browser ja gar
nichts macht. Würdest Du in der schleife was ausgeben (echo oder so) und
das vielleicht mit flush() noch zum Browser spülen, dann würde PHP bei
der Ausgabe merken, dass der Browser nicht mehr da ist und das Script
abbrechen.

Grüße, Matthias

Re: cript läuft nach Browser-Abbruch weiter

am 15.06.2006 23:34:57 von Achim Peters

Karl Rambusek wrote:
> Habe folgendes Problem: Script läuft nach Browser-Abbruch weiter.
> Starte diese Script über den Browser, klicke auf "Abbrechen", das Dummy-
> File vergössert sich jedoch jede Sekunde.

Ist vor dem Scriptstart schon etwas an den Browser ausgegeben worden?
Ansonsten ist evtl. noch gar kein Socket auf, dessen Schließen PHP
bemerken könnte.

Bye
Achim

Re: cript läuftnach Browser-Abbruch weiter

am 16.06.2006 01:08:36 von Sven Drieling

Karl Rambusek wrote:

Hallo,

> Habe folgendes Problem: Script läuft nach Browser-Abbruch weiter.

> while(true)

- "Herr Doktor, wenn ich meinen Arm so bewege dann tut er weh."
- "Dann bewegen sie ihren Arm nicht so."
=20
Beim Drücken des Stop-Buttons bricht PHP das Skript erst bei
der nächsten Ausgabe oder dem Erreichen des Timeouts ab.
=20
Chapter 40. Connection handling
=20
--- schnipp ---
With a shutdown function, when the remote user hits his STOP button,
the next time your script tries to output something PHP will detect
that the connection has been aborted and the shutdown function is
called.
[...]
Your script can also be terminated by the built-in script timer.
--- schnapp ---


tschuess
[|8:)