Index: phpdoc/fr/functions/http.xml diff -u phpdoc/fr/functions/http.xml:1.1 phpdoc/fr/functions/http.xml:1.2 --- phpdoc/fr/functions/http.xml:1.1 Fri Jul 21 03:27:50 2000 +++ phpdoc/fr/functions/http.xml Tue Oct 31 00:58:42 2000 @@ -1,190 +1,232 @@ - - Fonctions HTTP - HTTP - - - - Ces fonctions permettent de travailler sur les informations transmises au navigateur, - via le protocole HTTP. - - - - - - header - Envoie un entête HTTP. - - - Description - - int header - string string - - - La fonction Header permet de spécifier un entête HTTP lors - de l'envoi des fichiers HTML. Reportez vous à HTTP 1.1 - Specification pour plus d'informations sur les entêtes HTTP. NB : la - fonction Header 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 include ou - avec auto_prepend et d'avoir des espace ou des lignes vides dans ce code qui - produisent un début de sortie avant que header n'ai été appelé. - - - - 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 redirectoin à 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. - -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é. */ - - - 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 vosu 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 : - -header("http/1.0 404 Not Found"); - - - - - 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 - - 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 - - - - - - - setcookie - Envoie un cookie - - - Description - - int setcookie - string name - string value - int expire - string path - string domain - int secure - - - setcookie 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 <html> ou <head>. - - - - Tous les arguments sauf name (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 expire est un timestamp UNIX, du même genre que - celui retourné par time ou mktime. - Le paramètre secure indique que le cookie doit être uniquement - transmis à travers une connexion HTTPS sécurisée. - - - Erreurs communes: - - - - Les cookies ne seront accessibles qu'au chargement de la prochaîne page. - - - - Les appels multiples à setcookie 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. - - - - Quelques exemples : - - Exemples <function>setcookie</function> - -setcookie("TestCookie","Test Value"); -setcookie("TestCookie",$value,time()+3600); /* expire in 1 hour */ -setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1); - - - - 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 : - - -echo $TestCookie; -echo $HTTP_COOKIE_VARS["TestCookie"]; - - - - 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 : - - -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"; - } -} - - - - - - - Pour d'autres informations sur les cookies, jetez un oeil sur - &spec.cookies;. - - - - Microsoft Internet Explorer 4 utilisé avec le Service Pack 1 ne gère pas bien - les cookies qui possèdent un paramètre path. - - - - Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x - semblent ne pas gérer correctement les cookies lorsque path - et time> ne sont pas fournis. - - - - - - - - + + Fonctions HTTP + HTTP + + + + Ces fonctions permettent de travailler sur les informations transmises + au navigateur, via le protocole HTTP. + + + + + + header + Envoie un entête HTTP. + + + Description + + int header + string string + + + Header permet de spécifier un + entête HTTP lors de l'envoi des fichiers HTML. Reportez-vous + à HTTP 1.1 Specification + pour plus d'informations sur les entêtes HTTP. NB : la fonction + Header 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 include 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 header + n'ai été appelé. + + + + 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. + + +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é. */ + + + + + 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 : + + +header("http/1.0 404 Not Found"); + + + + + + 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 + + + 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 + + + + + + + + + header_sent + + Indique si les entêtes HTTP ont déjà été + envoyés + + + + Description + + + boolean headers_sent + void + + + + headers_sent retourne TRUE si les entêtes HTTP + ont déjà été envoyés, et false sinon. + + + Voir aussi header. + + + + + + + setcookie + Envoie un cookie + + + Description + + int setcookie + string name + string value + int expire + string path + string domain + int secure + + + setcookie 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 <html> + ou <head>. + + + + Tous les arguments sauf name (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 expire est un + timestamp UNIX, du même genre que celui retourné par + time ou mktime. + Le paramètre secure indique + que le cookie doit être uniquement transmis à travers + une connexion HTTPS sécurisée. + + + Erreurs communes: + + + Les cookies ne seront accessibles qu'au chargement de la prochaîne page. + + + Les appels multiples à setcookie 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. + + + Quelques exemples : + + Exemples avec <function>setcookie</function> + +setcookie("TestCookie","Test Value"); +setcookie("TestCookie",$value,time()+3600); /* expire in 1 hour */ +setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1); + + + + 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 : + + +echo $TestCookie; +echo $HTTP_COOKIE_VARS["TestCookie"]; + + + + 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 : + + +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"; + } +} + + + + + Pour d'autres informations sur les cookies, jetez un oeil sur + &spec.cookies;. + + + Microsoft Internet Explorer 4 utilisé avec le Service Pack 1 + ne gère pas bien les cookies qui possèdent un + paramètre path. + + + Netscape Communicator 4.05 et Microsoft Internet Explorer 3.x + semblent ne pas gérer correctement les cookies lorsque + path et time> ne + sont pas fournis. + + + + + + +