Mailinglisten-Archive |
"Egon Schmid (_(at)_vacation)" schrieb: > > 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. Manchmal schon, zumindest ist es geeignet die erste Frage zu beantworten, was an ignore_user_abort() zu übergeben ist. Ob es dann hinterher das tut, was es soll, steht auf einem anderem Blatt. > > 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. Das verstehe ich nicht. Der Prototyp weißt boolean aus: 2161 /* {{{ proto int ignore_user_abort(boolean value) 2162 Set whether we want to ignore a user abort event or not */ Die Funktion konvertiert dann das Argument in das, was intern als Boolean gewertet wird, entnimmt der Struktur den eigentlichen Wert und wandelt diesen in einen unsigned char. http://lxr.php.net/source/Zend/zend.h#137 137 typedef unsigned char zend_bool; Damit ist es - wie üblich - egal, was ich von meinem PHP Skript aus an die Funktion übergebe, es wird als Boolean gewertet. Ob dies adäquat ist für die Aufgabe, oder ob es nicht besser ein Integer sein sollte, darüber will ich kein Urteil fällen. Wenn die Dokumentation aus didaktischen Gründen einen Integer aufweist, so empfinde ich dies als inkonsistent. Schließlich kann die aktuelle Implementation nur "an"/"aus" verarbeiten. Ulf -- Ulf Wendel, NetUSE AG Siemenswall, D-24107 Kiel Tel: +49 431 386 436 00, Fax: +49 431 386 435 99
php::bar PHP Wiki - Listenarchive