1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
<?xml version="1.0" encoding="iso-8859-2"?>
<!-- EN-Revision: 1.10 Maintainer: luk Status: ready -->
<chapter id="features.connection-handling">
<title>Obsluha spojen</title>
<note>
<para>Nsledujc text plat pro verzi 3.0.7 a vy.</para>
</note>
<para>
Stav spojen se v PHP intern sleduje. Jsou ti mon stavy:
<itemizedlist>
<listitem><simpara>0 - NORMAL (normln)</simpara></listitem>
<listitem><simpara>1 - ABORTED (zrueno)</simpara></listitem>
<listitem><simpara>2 - TIMEOUT (vyprel asov limit)</simpara></listitem>
</itemizedlist>
</para>
<simpara>
Pi normlnm bhu PHP skriptu je aktivn stav NORMAL. Pokud se klient
odpoj, nastav se pznak ABORTED. K odpojen vzdlenho klienta typicky
dochz, kdy uivatel zmkne tlatko STOP. Pokud se doshne asovho
limitu (viz <function>set_time_limit</function>), nastav se stavov pznak
TIMEOUT.
</simpara>
<simpara>
Mete se rozhodnout jestli chcete, aby odpojen klienta zpsobilo pedasn
ukonen vaeho skriptu. Nkdy je uiten nechat skripty dobhnout do konce,
pestoe nen vzdlenho browseru, kter by pijmal vstup. Vchoz chovn
je nicmn takov, e pi odpojen vzdlenho klienta dojde k ukonen bhu
skriptu. Toto chovn se d zmnit skrze konfiguran direktivu
ignore_user_abort v php3.ini, odpovdajc direktivu php3_ignore_user_abort
v .conf souboru Apache, i funkci <function>ignore_user_abort</function>.
Pokud nedte PHP pokyn ignorovat odpojen uivatele a ten se odpoj, v
skript se ukon. Vjimkou je, pokud mte pomoc
<function>register_shutdown_function</function> zaregistrovanou funkci pro
proveden pi ukonen skriptu. V tom ppad, pokud vzdlen uivatel zmkne
tlatko STOP, pi dalm pokusu tohoto skriptu odeslat vstup PHP detekuje,
e spojen bylo zrueno, a zavol se funkce zaregistrovan pro proveden pi
ukonen skriptu. Tato funkce se zavol tak na konci bhu skriptu koncm
normln, take pokud chcete po zruenm spojen udlat nco jinho, mete
pout <function>connection_aborted</function>. Tato funkce vrt
&true;, pokud bylo spojen zrueno.
</simpara>
<simpara>
V skript me tak ukonit vestavn ta asu. Vchoz asov limit je
30 sekund. To se d zmnit max_execution_time direktivou v php.ini nebo
odpovdajc php3_max_execution_time direktivou v .conf souboru Apahe, i
volnm funkce <function>set_time_limit</function>. Kdy ta asu dobhne,
skript se ukon, a jako ve ve uvedenm ppad uivatelskho odpojen,
pokud je zaregistrovan funkce pro proveden pi ukonen skriptu, tato se
zavol. Uvnit tto funkce mte zkontrolovat, jestli jej zavoln zpsobilo
dobhnut tae asu zavolnm funkce <function>connection_timeout</function>.
Tato funkce vrt &true;, pokud voln funkce registrovan
pro proveden pi ukonen skriptu zpsobilo dobhnut tae asu.
</simpara>
<simpara>
Skutenost hodnou povimnut je, e stavy ABORTED a TIMEOUT mohou bt
aktivn souasn. Mon je to v ppad, e nadte PHP ignorovat odpojen
uivatee. PHP i tak bude vdt, e uivatel peruil spojen, ale skript
pob dl. Pokud potom doshne asovho limitu, bude ukonen, a zavol se
vae funkce pro proveden pi ukonen skriptu, pokud existuje. V tomto
okamiku zjistte, e jak <function>connection_timeout</function>, tak
<function>connection_aborted</function> vracej &true;.
Oba stavy mete zkontrolovat jedinm volnm funkce
<function>connection_status</function>. Tato funkce vrac bitov pole
aktivnch stav. Take napklad, pokud jsou aktivn oba tyto stavy, vrt
3.
</simpara>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
|