dams Tue Jul 10 03:42:19 2001 EDT
Modified files:
/phpdoc/fr/functions http.xml
Log:
Updated the setcookie docs
Index: phpdoc/fr/functions/http.xml
diff -u phpdoc/fr/functions/http.xml:1.6 phpdoc/fr/functions/http.xml:1.7
--- phpdoc/fr/functions/http.xml:1.6 Sat Jul 7 18:22:09 2001
+++ phpdoc/fr/functions/http.xml Tue Jul 10 03:42:19 2001
@@ -1,100 +1,104 @@
- <reference id="ref.http">
- <title>HTTP</title>
- <titleabbrev>HTTP</titleabbrev>
- <partintro>
+<reference id="ref.http">
+ <title>HTTP</title>
+ <titleabbrev>HTTP</titleabbrev>
+ <partintro>
<simpara>
- Ces fonctions permettent de travailler sur les informations transmises
- au navigateur, via le protocole HTTP.
+ Ces fonctions permettent de travailler sur les informations transmises
+ au navigateur, via le protocole HTTP.
</simpara>
- </partintro>
- <refentry id="function.header">
- <refnamediv>
- <refname>header</refname>
- <refpurpose>Envoie un entête HTTP.</refpurpose>
- </refnamediv>
- <refsect1>
- <title>Description</title>
- <funcsynopsis>
+ </partintro>
+ <refentry id="function.header">
+ <refnamediv>
+ <refname>header</refname>
+ <refpurpose>Envoie une en-tête HTTP.</refpurpose>
+ </refnamediv>
+ <refsect1>
+ <title>Description</title>
+ <funcsynopsis>
+ <funcprototype>
<funcdef>int <function>header</function></funcdef>
<paramdef>string <parameter>string</parameter></paramdef>
- </funcsynopsis>
- <para>
- <function>header</function> permet de spécifier un
- entête HTTP lors de l'envoi des fichiers HTML. Reportez vous
- à <ulink url="&spec.http1.1;">HTTP 1.1 Specification</ulink>
- pour plus d'informations sur les entêtes HTTP. NB : la fonction
- <function>header</function> doit être appelée avant la
- première balise HTML, et avant n'importe quel envoi de commande
- PHP. C'est une erreur très courante que de lire du code avec la
- fonction <function>include</function> ou avec auto_prepend et d'avoir
- des espaces ou des lignes vides dans ce code qui produisent un
- début de sortie avant que <function>header</function>
- n'ai été appelé.
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>header</function> permet de spécifier une
+ en-tête HTTP lors de l'envoi des fichiers HTML. Reportez-vous
+ à <ulink url="&spec.http1.1;">HTTP 1.1 Specification</ulink>
+ pour plus d'informations sur les en-têtes HTTP.
</para>
- <para>
- Il y a cependant deux entêtes spéciaux. Le premier est
- "Location". Non seulement il renvoie un entête au
- client, mais en plus, il envoie un statut de redirection à
- Apache. Du point de vue de l'auteur de script, cela importe peu,
- mais pour ceux qui connaissent les rouages internes d'Apache, c'est
- primordial.
- <informalexample>
- <programlisting role="php">
+ <note>
+ la fonction <function>header</function> doit être appelée avant la
+ première balise HTML, et avant n'importe quel envoi de commande
+ PHP. C'est une erreur très courante que de lire du code avec la
+ fonction <function>include</function> ou avec auto_prepend et d'avoir
+ des espaces ou des lignes vides dans ce code qui produisent un
+ début de sortie avant que <function>header</function>
+ n'ait été appelé.
+ </note>
+ <para>
+ Il y a cependant deux en-têtes spéciales. Le premier est
+ "Location". Non seulement il renvoie une en-tête au
+ client, mais en plus, il envoie un statut de redirection à
+ Apache. Du point de vue de l'auteur de script, cela importe peu,
+ mais pour ceux qui connaissent les rouages internes d'Apache, c'est
+ primordial.
+ <informalexample>
+ <programlisting role="php">
<?php
header("Location: http://www.php.net"); /* Redirige le client vers le site PHP */
exit(); /* Assure que le code ci-dessous n'est jamais exécuté. */
?>
- </programlisting>
- </informalexample>
- </para>
- <para>
- Le deuxième type d'appel spécial regroupe tous les
- entêtes qui commencent par "HTTP/" (la casse n'est
- pas importante). Par exemple, si vous avez votre page d'erreur 404
- Apache qui pointent sur un script PHP, c'est une bonne idée
- que de vous assurez que le script PHP génére une erreur
- 404. La première chose à dans votre script est :
- <informalexample>
- <programlisting role="php">
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ Le deuxième type d'appel spécial regroupe toutes les
+ en-têtes qui commencent par "HTTP/" (la casse n'est
+ pas importante). Par exemple, si vous avez votre page d'erreur 404
+ Apache qui pointe sur un script PHP, c'est une bonne idée
+ que de vous assurer que le script PHP génère une erreur
+ 404. La première chose à faire dans votre script est :
+ <informalexample>
+ <programlisting role="php">
<?php
header("http/1.0 404 Not Found");
?>
- </programlisting>
- </informalexample>
- </para>
- <para>
- Les scripts PHP générent souvent du HTML dynamiquement,
- qui ne doit pas être mis en cache, ni par le client, ni par les
- proxy intermédiaires. On peut forcer la désactivation du
- cache de nombreux clients et proxy avec
- <informalexample>
- <programlisting role="php">
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ Les scripts PHP génèrent souvent du HTML dynamiquement,
+ qui ne doit pas être mis en cache, ni par le client, ni par les
+ proxy intermédiaires. On peut forcer la désactivation du
+ cache de nombreux clients et proxy avec
+ <informalexample>
+ <programlisting role="php">
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du
passé
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // toujours
modifié
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
?>
- </programlisting>
- </informalexample>
- </para>
- <para>
- N'oubliez jamais que <function>header</function> doit être appelée
- avant que le moindre contenu ne soit envoyé, soit par des
- lignes HTML habituelles dans le fichier, soit par des affichges
- PHP. Une erreur très classique est de lire un fichier avec
- <function>include</function> ou <function>require</function>,
- et de laisser des espaces ou des lignes vides, qui généreront
- un affichage avant que la fonction <function>header</function>
- ne soit appelée. Le même problème existe avec les fichiers
- PHP/HTML standards.
- <informalexample>
- <programlisting role="php">
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ N'oubliez jamais que <function>header</function> doit être appelée
+ avant que le moindre contenu ne soit envoyé, soit par des
+ lignes HTML habituelles dans le fichier, soit par des affichges
+ PHP. Une erreur très classique est de lire un fichier avec
+ <function>include</function> ou <function>require</function>,
+ et de laisser des espaces ou des lignes vides, qui génèreront
+ un affichage avant que la fonction <function>header</function>
+ ne soit appelée. Le même problème existe avec les fichiers
+ PHP/HTML standards.
+ <informalexample>
+ <programlisting role="php">
<?php
-require("user_logging.inc")
+ require("user_logging.inc")
?>
<?php
- header ("Content-Type: audio/x-pn-realaudio");
+ header("Content-Type: audio/x-pn-realaudio");
?>
// Erreur : Notez la ligne blanche ci-dessus
</programlisting>
@@ -141,108 +145,139 @@
<funcsynopsis>
<funcdef>int <function>setcookie</function></funcdef>
<paramdef>string <parameter>name</parameter></paramdef>
- <paramdef>string <parameter>value</parameter></paramdef>
- <paramdef>int <parameter>expire</parameter></paramdef>
- <paramdef>string <parameter>path</parameter></paramdef>
- <paramdef>string <parameter>domain</parameter></paramdef>
- <paramdef>int <parameter>secure</parameter></paramdef>
- </funcsynopsis>
- <para>
- <function>setcookie</function> définit un cookie qui sera envoyé
- avec le reste des entêtes. Les cookies doivent passer avant tout autre
- entête (c'est une restriction des cookies, pas de PHP). Cela vous impose
- d'appeler cette fonction avant toute balise <literal><html></literal>
- ou <literal><head></literal>.
- </para>
- <para>
- Tous les arguments sauf <parameter>name</parameter> (nom) sont optionnels.
- Si seul le nom est présent, le cookie portant ce nom sera
- supprimé du client. Vous pouvez aussi utiliser une
- chaîne vide comme valeur, pour ignorer un argument.
- Le paramètre <parameter>expire</parameter> est un
- timestamp UNIX, du même genre que celui retourné par
- <function>time</function> ou <function>mktime</function>.
- Le paramètre <parameter>secure</parameter> indique
- que le cookie doit être uniquement transmis à travers
- une connexion HTTPS sécurisée.
- </para>
- <para>
- Erreurs communes:
+ <paramdef>string
+ <parameter><optional>value</optional></parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter><optional>expire</optional></parameter>
+ </paramdef>
+ <paramdef>string
+ <parameter><optional>path</optional></parameter>
+ </paramdef>
+ <paramdef>string
+ <parameter><optional>domain</optional></parameter>
+ </paramdef>
+ <paramdef>int
+ <parameter><optional>secure</optional></parameter>
+ </paramdef>
+ </funcprototype>
+ </funcsynopsis>
+ <para>
+ <function>setcookie</function> définit un cookie qui sera envoyé
+ avec le reste des en-têtes. Les cookies doivent passer avant toute autre
+ en-tête (c'est une restriction des cookies, pas de PHP). Cela vous impose
+ d'appeler cette fonction avant toute balise <literal><HTML></literal>
+ ou <literal><HEAD></literal>.
+ </para>
+ <para>
+ Tous les arguments sauf <parameter>name</parameter> (nom) sont optionnels.
+ Si seul le nom est présent, le cookie portant ce nom sera
+ supprimé du navigateur de l'internaute. Vous pouvez aussi utiliser une
+ chaîne vide comme valeur, pour ignorer un argument.
+ Le paramètre <parameter>expire</parameter> est un
+ timestamp UNIX, du même genre que celui retourné par
+ <function>time</function> ou <function>mktime</function>.
+ Le paramètre <parameter>secure</parameter> indique
+ que le cookie doit être uniquement transmis à travers
+ une connexion HTTPS sécurisée.
+ </para>
+ <para>
+ Erreurs communes :
+ <itemizedlist>
+ <listitem>
+ <simpara>
+ Les cookies ne seront accessibles qu'au chargement de la prochaine page,
+ ou au rechargement de la page courante.
+ </simpara>
+ </listitem>
+ <listitem>
+ <simpara>
+ Les cookies doivent être effacés avec les mêmes
+paramètres
+ que ceux utilisés lors de leur création.
+ </simpara>
+ </listitem>
+ </itemizedlist>
</para>
- <simpara>
- Les cookies ne seront accessibles qu'au chargement de la prochaîne page.
- </simpara>
<simpara>
- Les appels multiples à <function>setcookie</function> dans la même
- page seront réalisés dans l'ordre inverse. Si vous essayez
- d'effacer un cookie avant d'insérer une autre valeur, il faut
- placer l'insertion avant l'effacement.
+ En PHP 3, les appels multiples à <function>setcookie</function> dans le
+ même script seront effectués dans l'ordre inverse. Si vous essayez
+d'effacer
+ un cookie avant d'insérer une nouvelle valeur, vous devez placer
+l'insertion
+ avant l'effacement. En PHP 4, les appels multiples à
+ <function>setcookie</function> sont effectués dan un ordre naturel.
</simpara>
- <para>
- Quelques exemples :
- <example>
- <title>Exemples avec <function>setcookie</function></title>
- <programlisting role="php">
-<?php
-setcookie("TestCookie","Test Value");
-setcookie("TestCookie",$value,time()+3600); /* éxpire dans une heure */
-setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);
+ <simpara>
+ Les appels multiples à <function>setcookie</function> dans la même
+ page seront réalisés dans l'ordre inverse. Si vous essayez
+ d'effacer un cookie avant d'insérer une autre valeur, il faut
+ placer l'insertion avant l'effacement.
+ </simpara>
+ <para>
+ Quelques exemples :
+ <example>
+ <title>Exemples avec <function>setcookie</function></title>
+ <programlisting role="php">
+<?php
+ setcookie("TestCookie","Valeur de test");
+ setcookie("TestCookie",$value,time()+3600); /* expire dans une heure */
+ setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);
?>
- </programlisting>
- </example>
- </para>
- <para>
- Notez que la partie "valeur" du cookie sera automatiquement
- encodée URL lorsque vous envoyez le cookie, et lorsque
- vous le recevez, il sera automatiquement décodé,
- et affecté à la variable du même nom que
- le cookie. Pour voir le résultat, essayez les scripts suivants :
- <informalexample>
- <programlisting role="php">
+ </programlisting>
+ </example>
+ </para>
+ <para>
+ Notez que la partie "valeur" du cookie sera automatiquement
+ encodée URL lorsque vous envoyez le cookie, et lorsque
+ vous le recevez, il sera automatiquement décodé,
+ et affecté à la variable du même nom que
+ le cookie. Pour voir le résultat, essayez les scripts suivants :
+ <informalexample>
+ <programlisting role="php">
<?php
-echo $TestCookie;
-echo $HTTP_COOKIE_VARS["TestCookie"];
+ echo $TestCookie;
+ echo $HTTP_COOKIE_VARS["TestCookie"];
?>
- </programlisting>
- </informalexample>
- </para>
- <para>
- Vous pouvez aussi utiliser les cookies avec des tableaux, en utilisant la
- notation des tableaux. Cela a pour effet de créer autant de
- cookie que votre tableau a d'éléments, mais lorsque
- les cookies seront reçus par PHP, les valeurs seront
- placées dans un tableau :
- <informalexample>
- <programlisting role="php">
-setcookie( "cookie[three]", "cookiethree" );
-setcookie( "cookie[two]", "cookietwo" );
-setcookie( "cookie[one]", "cookieone" );
-if ( isset( $cookie ) ) {
- while( list( $name, $value ) = each( $cookie ) ) {
- echo "$name == $value<br>\n";
- }
-}
- </programlisting>
- </informalexample>
- </para>
- <para>
- Pour d'autres informations sur les cookies, jetez un oeil sur
- <ulink url="&spec.cookies;">&spec.cookies;</ulink>.
- </para>
- <simpara>
- Microsoft Internet Explorer 4 utilisé avec le Service Pack 1
- ne gère pas bien les cookies qui possèdent un
- paramètre <parameter>path</parameter>.
- </simpara>
- <simpara>
- Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x
- semblent ne pas gérer correctement les cookies lorsque
- <parameter>path</parameter> et <parameter>time></parameter> ne
- sont pas fournis.
- </simpara>
- </refsect1>
- </refentry>
- </reference>
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ Vous pouvez aussi utiliser les cookies avec des tableaux, en utilisant la
+ notation des tableaux. Cela a pour effet de créer autant de
+ cookies que votre tableau a d'éléments, mais lorsque
+ les cookies seront reçus par PHP, les valeurs seront
+ placées dans un tableau :
+ <informalexample>
+ <programlisting role="php">
+<?php
+ setcookie( "cookie[three]", "cookiethree" );
+ setcookie( "cookie[two]", "cookietwo" );
+ setcookie( "cookie[one]", "cookieone" );
+ if ( isset( $cookie ) ) {
+ while( list( $name, $value ) = each( $cookie ) ) {
+ echo "$name == $value<br>\n";
+ }
+ }
+?>
+ </programlisting>
+ </informalexample>
+ </para>
+ <para>
+ Pour d'autres informations sur les cookies, jetez un oeil sur
+ <ulink url="&spec.cookies;">&spec.cookies;</ulink>.
+ </para>
+ <simpara>
+ Microsoft Internet Explorer 4 utilisé avec le Service Pack 1
+ ne gère pas bien les cookies qui possèdent un
+ paramètre <parameter>path</parameter>.
+ </simpara>
+ <simpara>
+ Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x
+ semblent ne pas gérer correctement les cookies lorsque
+ <parameter>path</parameter> et <parameter>time></parameter> ne
+ sont pas fournis.
+ </simpara>
+ </refsect1>
+ </refentry>
+</reference>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml