verhalten bei benutzerabbruch
werbeklaus
- php
Hi ihrs!
Ich hab mal ne frage zu dem Serververhalten bei Abbruch durch den Benutzer:
1.was passiert wenn der Benutzer abbricht?
2.Es gibt eine Funktion, um den Server in diesem Fall nochmals eine Funktion starten zu lassen. Was ist aber, wenn der Benutzer während der Ausführung einer Funktion abbricht?
Danke euch,
werbeklaus
Hi ihrs!
1.was passiert wenn der Benutzer abbricht?
Normal wird dann auch das Script beendet
2.Es gibt eine Funktion, um den Server in diesem Fall nochmals eine Funktion starten zu lassen. Was ist aber, wenn der Benutzer während der Ausführung einer Funktion abbricht?
Ja, du kannst das Verhalten beim Abbrechen der Verbindung beeinflussen:
http://de.php.net/manual/de/features.connection-handling.php
greetz RFZ
Hello,
Ich hab mal ne frage zu dem Serververhalten bei Abbruch durch den Benutzer:
1.was passiert wenn der Benutzer abbricht?
Dann wird das Script beendet. Dazu muss es natürlich noch gelaufen sein.
2.Es gibt eine Funktion, um den Server in diesem Fall nochmals eine Funktion starten zu lassen. Was ist aber, wenn der Benutzer während der Ausführung einer Funktion abbricht?
Dann wird auch der Exit-Handler aufgerufen. Der führt erst alle Funktionen, die mit register_shutdown:funktion() deklariert wurden durch, und dann die PHP-internen (Sessionvariablen sichern, Handles zurückgeben, ...)
Und sonst schau mal unter ignore_user_abort() http://de2.php.net/manual/de/function.ignore-user-abort.php
Wenn Du das aber einbaust, und ggf. auch noch mit set_time_limit(0)
http://de2.php.net/manual/de/function.set-time-limit.php arbeiten solltest, dann sollte dein script auf gar keinen Fall Endlosschleifen endhalten!
Ein Script wird also abgebrochen, wenn
Gerade bei gebundenen Datenbankoperationen kann sowas zu hässlichen Inkonsistenzen führen, da die Bindung ja in der API stattfindet und das DBMS dazu funktionstüchtiges Transaction Tracking benötigen würde, um solch einen Fehler auszugleichen.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hello,
Gerade bei gebundenen Datenbankoperationen kann sowas zu hässlichen Inkonsistenzen führen, da die Bindung ja in der API stattfindet und das DBMS dazu funktionstüchtiges Transaction Tracking benötigen würde, um solch einen Fehler auszugleichen.
Damit das nicht erst missverstanden wird: das zielte auf ein bestimmtes, hier so beliebtes DBMS. Es gibt natürlich auch welche, die mehrere Statements gemeinsam (gebunden) verarbeiten können :-P
Harzliche Grüße aus http://www.annerschbarrich.de
Tom