phpbar.de logo

Mailinglisten-Archive

[php] ignore_user_abort()

[php] ignore_user_abort()

Egon Schmid (_(at)_vacation) eschmid_(at)_php.net
Mon, 19 Feb 2001 10:42:07 +0100


Ulf Wendel wrote:
> 
> Alexander Ott schrieb:
> > Ich habe ein kleines Problem mit der Funktion
> > ignore_user_abort(). Welchen Parameter muss man da
> > übergeben, wenn man will, dass das Script weiterläuft, wenn der
> > User den Browser schliesst, oder eine andere URL aufsucht.
> >
> > Aus dem Handbuch wird man nicht schlau, dort wird nur
> > beschrieben, dass man 0 für normal, 1 für Abort und
> > 2 für Timeout übergeben soll ?????
> 
> Generell bei solchen Fragen:
> 
> [1] http://www.zugeschaut-und-mitgebaut.de/php/i.html
> [2]
> http://www.zugeschaut-und-mitgebaut.de/php/function.ignore_user_abort.html
> [3] http://lxr.php.net/source/php4/ext/standard/basic_functions.c#2159

Hi Ulf, leider helfen bei solchen Fragen die Funktionstabellen von
Hartmut nicht wirklich weiter.

> 2170    switch (ZEND_NUM_ARGS()) {
> 2171         case 0:
> 2172             break;
> 
> Keine Daten bekommen - skip it...
> 
> 2173         case 1:
> 2174             if (zend_get_parameters_ex(1, &arg) == FAILURE) {
> 2175                 RETURN_FALSE;
> 2176             }
> 2177             convert_to_boolean_ex(arg);
> 
> Ein Übergabewert? convert_to_boolean()
> 
> 2178             PG(ignore_user_abort) = (zend_bool) Z_LVAL_PP(arg);
> 2179             break;
> 2180         default:
> 2181             WRONG_PARAM_COUNT;
> 2182             break;
> ...
> 
> Die Funktion frißt nichts anderes als einen Boolean. In PHP stehen Dir
> zur einfachen Arbeit mit Booleans die vordefinierten Konstanten true und
> false zur Verfügung.

Soll heißen, entweder man gibt ein Argument an oder man läßt es bleiben.
Das hat aber mit Booleans herzlich wenig zu tun, den die Settings bei
ignore_user_abort sollten Integer sein und die sind halt mal nicht mit
TRUE und FALSE zu füttern.
 
> http://www.php.net/manual/de/features.connection-handling.php ist
> vielleicht nicht ohne Kaffe lesbar, aber durchaus verständlich: "Wenn
> das eingestellte Zeitlimit (siehe set_time_limit()) überschritten wird,
> wird der Status TIMEOUT gesetzt." + letzter Absatz. Von
> ignore_user_abort() steht dort nichts in Zusammenhang mit 2 - TIMEOUT.

Aber in connection-handling.* stehts andersrum.
 
> Anyway, der Prototyp ist im Manual schräg:
> http://www.php.net/manual/en/function.ignore-user-abort.php.

Also ich schau auch manchmal ins Manual und da ist mir doch letzte Woche
aufgefallen, dass kein einziger Prototyp von den reichlichen
POSIX-Funktionen richtig sein kann. Ich glaube kk verwechselt double mit
int.
 
> Wenn Du jetzt immer noch im Wald stehst, laß Dich von den PHP buildern
> beraten, die Werbung in den stets zu lesenden "User Contributed Notes"
> machen.

Leider ist mein Urlaub zu Ende und deshalb hab ich zum Aufräumen in den
"User Contributed Notes" nicht viel Zeit.

-Egon

-- 
SIX Offene Systeme GmbH       ·        Stuttgart  -  Berlin 
Sielminger Straße 63   ·    D-70771 Leinfelden-Echterdingen
Fon +49 711 9909164 · Fax +49 711 9909199 http://www.six.de
Besuchen Sie uns auf der CeBIT 2001,  Halle 6,  Stand F62/4


php::bar PHP Wiki   -   Listenarchive