Hi Tom, Hi Christian
Was für ein Vorgang läuft da eigentlich ab, wenn man dann den Stop(p)-Button vom Browser drückt?
Die HTTP-Verbindung zum Server wird unterbrochen. In PHP kannst Du dieses Ereignis mit einer Shutdown-Funktion abfrangen: http://www.php.net/manual/en/function.register-shutdown-function.php
Jetzt sitze ich aber schön in der Tinte. Du sagst mir hier, "die HTTP-Verbindung" wird unterbrochen. Ich weiß aber aus ganz vielen anderen Diskussionen, dass http verbindungs- und zustandslos arbeitet. Außerdem weiß ich aber auch, dass der Button eine Wirkung hat. Wem soll ich nun glauben ;-)
Das hab ich gestern abend erfahren, du erinnerst dich?
Wie Christian auch schon versucht hat zu erklären:
Der Stop-Button tut nix anderes als den TCP-Stream zu unterbrechen, vai close(); wie Christian anmerkt. (Das geht auch mit PHP!, z.B. bei file-operationen via HTTP)
das ganze ist bei mir gestern halt auch passiert, zwar bugmäßig, aber nach dem schema, und zwar präzise nach dem ersten Paket... hätten wir hier ein gutes PHP-Forum, so hätte es auf connection_close = true reagieren können, und AFAIK eine Fehlermeldung ausgeben in der Form "Sie haben Ihre Daten nicht richtig abgeschickt", aber das kann Perl nu mal nicht :)
(BTW: es hätte mir die suche enorm erleichtert =)
Also mal im Ernst. Ich würde es schon gerne etwas genauer wissen wollen, was der Button macht. Ich müsste mich also am besten hinsetzen, und mein Traficlog beobachten (Traffic analysieren), während ich auf den Stopp-Button klicke. Habe nur leider keinen Analyser, der mir die Packete zerpflückt.
nix pakete zerpflücken. da wird ein close-paket geschickt, wie christian sagt und gut is.
Mich interessiert, wie kann der Client mit dem von ihm auf dem Server angestoßenen Prozess in Kontakt treten, also "Verbindung" aufnehmen? Bzw. dafür sorgen, dass er abgebrochen wird...
nein, einen abbruch kann man AFAIK nicht abbrechen.
Fabian