Grundlegendes zu PHP
nochmal Marc
- php
-1 Klawischnigg0 Marc Reichelt0 Dennis0 Klawischnigg0 Marc Reichelt1 wahsaga
Wie ist das, wenn jemand eine PHP-Seite aufruft, diese aber abbricht, bevor der PHP-Teil zu Ende geparst wurde?
Oder wird der in jedem Fall bis zum Schluss ausgeführt?
Hi there,
Wie ist das, wenn jemand eine PHP-Seite aufruft, diese aber abbricht, bevor der PHP-Teil zu Ende geparst wurde?
Kann nicht sein, denn wenn etwas da ist, was Du abbrechen kannst, ist der Parser schon längst gelaufen und fertig...
Hallo Klawischnigg,
Wie ist das, wenn jemand eine PHP-Seite aufruft, diese aber abbricht, bevor der PHP-Teil zu Ende geparst wurde?
Kann nicht sein, denn wenn etwas da ist, was Du abbrechen kannst, ist der Parser schon längst gelaufen und fertig...
Und als Antwort auf Marc: Das PHP-Script wird immer komplett ausgeführt, oder bis der PHP Timeout zuschlägt. Das hat mit dem Client nichts zu tun: Wenn der schon nach 10% abbricht, läuft das PHP-Skript trotzdem noch weiter.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
Hi Marc,
Und als Antwort auf Marc: Das PHP-Script wird immer komplett ausgeführt, oder bis der PHP Timeout zuschlägt. Das hat mit dem Client nichts zu tun: Wenn der schon nach 10% abbricht, läuft das PHP-Skript trotzdem noch weiter.
Jein, es gibt da noch die php.ini Direktive ignore_user_abort - wenn ich das richtig verstanden haben, sollte sich gewünschtes Verhalten darüber regeln lassen, ausprobiert habe ich es allerdings noch nicht.
MfG, Dennis.
Danke für die Antworten, da muss ich mal meinen Provider fragen, wie das bei ihm eingestellt ist...
Hallo Marc,
da muss ich mal meinen Provider fragen, wie das bei ihm eingestellt ist...
[ ] du kennst phpinfo()
Grüße aus Nürnberg
Tobias
Hi,
Jein, es gibt da noch die php.ini Direktive ignore_user_abort - wenn ich das richtig verstanden haben, sollte sich gewünschtes Verhalten darüber regeln lassen, ausprobiert habe ich es allerdings noch nicht.
Dem ist so.
Und man kann es natürlich auch selbst einstellen. Die entsprechende Funktion heißt (Tusch!): ignore_user_abort ;-))
Gruß, Cybaer
Hi Cybaer,
Und man kann es natürlich auch selbst einstellen. Die entsprechende Funktion heißt (Tusch!): ignore_user_abort ;-))
Ja, ich weiß, steht ja auf der von mir verlinkten Seite ;-)
MfG, Dennis.
Hi there,
Kann nicht sein, denn wenn etwas da ist, was Du abbrechen kannst, ist der Parser schon längst gelaufen und fertig...
Was ist daran falsch? Ich denke, der OP wollte wissen, ob er in seinem Browser den Parser stoppen kann, und das funktioniert einfach nicht...
Hallo Klawischnigg,
Kann nicht sein, denn wenn etwas da ist, was Du abbrechen kannst, ist der Parser schon längst gelaufen und fertig...
Was ist daran falsch? Ich denke, der OP wollte wissen, ob er in seinem Browser den Parser stoppen kann, und das funktioniert einfach nicht...
Das hast du aber nicht geschrieben.
Der Parser kann sehr wohl noch weiterlaufen (wie Dennis aber soeben berichtet, kann man das Verhalten einstellen).
Ist diese Option aber deaktiviert, so läuft das PHP-Script weiter, auch nachdem du den Ladevorgang abgebrochen hast.
Grüße
Marc Reichelt || http://www.marcreichelt.de/
hi,
Der Parser kann sehr wohl noch weiterlaufen (wie Dennis aber soeben berichtet, kann man das Verhalten einstellen).
Ist diese Option aber deaktiviert, so läuft das PHP-Script weiter, auch nachdem du den Ladevorgang abgebrochen hast.
Auch wieder "falsch" :-)
Zum einen heißt die Option ignore_user_abort - muss also eingeschaltet sein (auf true gesetzt), damit das Script den Abbruch des Requests durch den Client ignoriert.
Außerdem sagt das Manual
"If changed to FALSE scripts will be terminated as soon as they try to output something after a client has aborted their connection."
D.h. also, dass ein Script, welches den user abort _nicht_ ignorieren soll, erst dann abgebrochen würde, wenn es danach noch eine Ausgabe zu machen versuchen würde. Scriptteile, die keine Ausgaben machen - Eintragen in eine Datenbank, Schreiben in ein Textfile, wasauchimmer - würden dadurch nicht automatisch abgebrochen, sondern laufen auch dann weiter bzw. zuende, wenn der Client schon signalisiert haben sollte, dass er sich dafür gar nicht mehr interessiert.
gruß,
wahsaga