mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-25 09:22:07 +01:00
103 lines
4.4 KiB
XML
103 lines
4.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: dc0f955be2a10b707ae06f7da69f52fab24df3d1 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: no -->
|
|
|
|
<chapter xml:id="features.connection-handling" xmlns="http://docbook.org/ns/docbook">
|
|
<title>Gestion des connexions</title>
|
|
<para>
|
|
Le statut des connexions est conservé en interne par PHP. Il y a
|
|
quatre états possibles :
|
|
<itemizedlist>
|
|
<listitem><simpara>0 - NORMAL (normal)</simpara></listitem>
|
|
<listitem><simpara>1 - ABORTED (annulé)</simpara></listitem>
|
|
<listitem><simpara>2 - TIMEOUT (périmé)</simpara></listitem>
|
|
<listitem><simpara>3 - ABORTED and TIMEOUT (annulé et périmé)</simpara></listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<simpara>
|
|
Lorsqu'un script PHP est en cours d'exécution, l'état est NORMAL.
|
|
Si le client distant se déconnecte, le statut devient ABORTED.
|
|
Une déconnexion du client distant est généralement causé par les utilisateurs
|
|
appuyant sur leurs bouton STOP. Si la durée maximale d'exécution de PHP est
|
|
dépassée, (voir <function>set_time_limit</function>), le script prend le
|
|
statut TIMEOUT.
|
|
</simpara>
|
|
<simpara>
|
|
Vous pouvez en outre décider si vous voulez que la
|
|
déconnexion d'un client provoque l'arrêt de votre
|
|
script. Il est parfois pratique que vos scripts continuent
|
|
à s'exécuter jusqu'à la fin, même si le client n'est plus là
|
|
pour recevoir les informations. Cependant, par défaut, le script
|
|
s'arrêtera dès que le client se déconnecte.
|
|
Ce comportement peut être modifié avec la directive
|
|
<option>ignore_user_abort</option> dans le fichier &php.ini; ou
|
|
bien avec la directive Apache <literal>php_value ignore_user_abort</literal>
|
|
du fichier Apache &httpd.conf; ou avec la fonction
|
|
<function>ignore_user_abort</function>. Si vous
|
|
ne demandez pas à PHP d'ignorer la déconnexion, et que
|
|
l'utilisateur se déconnecte, le script sera terminé. La
|
|
seule exception est si vous avez enregistré une fonction
|
|
de fermeture, avec <function>register_shutdown_function</function>.
|
|
Avec une telle fonction, lorsque l'utilisateur interrompt sa
|
|
requête, à la prochaine exécution du script,
|
|
PHP va s'apercevoir que le dernier script n'a pas été
|
|
terminé, et il va déclencher la fonction de fermeture.
|
|
Cette fonction sera aussi appelée à la fin du script,
|
|
si celui-ci se termine normalement. Pour pouvoir avoir un comportement
|
|
différent suivant l'état du script lors de sa finalisation,
|
|
vous pouvez exécutez des commandes spécifiques à
|
|
la déconnexion grâce à la commande
|
|
<function>connection_aborted</function>. Cette fonction retournera
|
|
&true; si la connexion a été annulée.
|
|
</simpara>
|
|
<simpara>
|
|
Votre script peut aussi être automatiquement interrompu
|
|
après une certaine durée.
|
|
Par défaut, le délai est de 30 secondes. Cette valeur
|
|
peut être changée en utilisant la directive PHP
|
|
<option>max_execution_time</option> dans le fichier
|
|
&php.ini; ou avec la directive
|
|
<literal>php_value max_execution_time</literal>, dans le fichier
|
|
Apache &httpd.conf; ou encore avec la fonction
|
|
<function>set_time_limit</function>.
|
|
Lorsque le délai expire, le script est terminé,
|
|
et comme pour la déconnexion du client, une fonction de
|
|
terminaison sera appelée. Dans cette fonction, vous
|
|
pouvez savoir si c'est le délai d'expiration qui a
|
|
causé la fin du script, en appelant la fonction
|
|
<function>connection_status</function>. Cette fonction
|
|
retournera <literal>2</literal> si le délai d'expiration a
|
|
été dépassé.
|
|
</simpara>
|
|
<simpara>
|
|
Une chose à noter est que les deux cas ABORTED et TIMEOUT
|
|
peuvent être appelés en même temps. Ceci est
|
|
possible si vous demandez à PHP d'ignorer les
|
|
déconnexions des utilisateurs. PHP va quand
|
|
même noter le fait que l'utilisateur s'est déconnecté,
|
|
mais le script va continuer. Puis, lorsqu'il atteint la limite de
|
|
temps, le script va expirer. À ce moment-là, la
|
|
fonction <function>connection_status</function>
|
|
retournera <literal>3</literal>.
|
|
</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:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
-->
|