Zend_Http_Cookie-Handling.xml 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 21826 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.http.cookies">
  5. <title>Zend_Http_Cookie and Zend_Http_CookieJar</title>
  6. <sect2 id="zend.http.cookies.introduction">
  7. <title>Introduction</title>
  8. <para>
  9. <classname>Zend_Http_Cookie</classname>, comme son nom l'indique, est une classe
  10. qui représente un cookie <acronym>HTTP</acronym>. Elle propose des méthodes d'analyse de la chaîne de
  11. réponse <acronym>HTTP</acronym>, de collection des cookies, et d'accès à leurs propriétés. Il est aussi
  12. possible avec cette classe de vérifier si les paramètres d'un cookie correspondent à un
  13. scénario précis, par exemple une <acronym>URL</acronym> spécifique, un certain temps d'expiration, la
  14. présence ou non de <acronym>HTTPS</acronym>, etc...
  15. </para>
  16. <para>
  17. <classname>Zend_Http_CookieJar</classname> est un objet utilisé en général avec
  18. <classname>Zend_Http_Client</classname> pour fournir une collection d'objets
  19. <classname>Zend_Http_Cookie</classname>. L'idée principale est d'attacher un objet
  20. <classname>Zend_Http_CookieJar</classname> à un objet
  21. <classname>Zend_Http_Client</classname>, de manière à ce que toutes les requêtes de
  22. celui-ci utilisent les cookies présents dans l'objet <code>CookieJar</code>. Ainsi,
  23. lorsque le client enverra une autre requête, il demandera à l'objet
  24. <code>CookieJar</code> tous les cookies concernant cette requête. Ceci est très pratique
  25. dans des cas comme envoyer un cookie de session entre plusieurs requêtes <acronym>HTTP</acronym>
  26. successives. De plus, l'objet <classname>Zend_Http_CookieJar</classname> peut être
  27. sérialisé et mis en session.
  28. </para>
  29. </sect2>
  30. <sect2 id="zend.http.cookies.cookie.instantiating">
  31. <title>Instancier des objets Zend_Http_Cookie</title>
  32. <para>
  33. L'instanciation se fait de deux manières différentes : <itemizedlist>
  34. <listitem>
  35. <para>
  36. Via son constructeur, de cette façon : <code>new
  37. Zend_Http_Cookie(string $name, string $value, string $domain, [int $expires,
  38. [string $path, [boolean $secure]]]);</code>
  39. </para>
  40. <itemizedlist>
  41. <listitem>
  42. <para>
  43. <varname>$name</varname>: Nom du cookie (par ex. "PHPSESSID")
  44. (requis)
  45. </para>
  46. </listitem>
  47. <listitem>
  48. <para><varname>$value</varname>: La valeur du cookie (requis)</para>
  49. </listitem>
  50. <listitem>
  51. <para>
  52. <varname>$domain</varname>: Le domaine de validité du cookie (par
  53. ex. ".example.com") (requis)
  54. </para>
  55. </listitem>
  56. <listitem>
  57. <para>
  58. <varname>$expires</varname>: Temps d'expiration du cookie, un
  59. timestamp UNIX (optionnel, défaut à <constant>NULL</constant>). Si non
  60. fourni, le cookie sera considéré comme "cookie de session", avec pas
  61. de temps d'expiration.
  62. </para>
  63. </listitem>
  64. <listitem>
  65. <para>
  66. <varname>$path</varname>: Chemin de validité du cookie, par ex.
  67. "/foo/bar/" (optionnel, défaut : "/")
  68. </para>
  69. </listitem>
  70. <listitem>
  71. <para>
  72. <varname>$secure</varname>: Booléen, Si le cookie doit être transmis
  73. via connexion sécurisée (HTTPS) uniquement (optionnel, défaut à
  74. <constant>FALSE</constant>)
  75. </para>
  76. </listitem>
  77. </itemizedlist>
  78. </listitem>
  79. <listitem>
  80. <para>
  81. En appelant la méthode statique <methodname>fromString($cookieStr, [$refUri, [$encodeValue]])</methodname>, avec une
  82. chaîne de caractères représentant un cookie tel que défini dans les en-têtes
  83. <acronym>HTTP</acronym> "Set-Cookie" (réponse) ou "Cookie" (requête). Dans ce cas la valeur du
  84. cookie doit être encodée. Lorsque la chaîne de caractères représentant un
  85. cookie ne comporte pas de partie "domain", vous devez fournir alors un <acronym>URI</acronym>
  86. selon lequel le cookie cherchera son domaine et son chemin.
  87. </para>
  88. <para>
  89. La méthode <code>fromString</code> accepte les paramètres suivants&#160;:
  90. </para>
  91. <itemizedlist>
  92. <listitem>
  93. <para>
  94. <varname>$cookieStr</varname>: a cookie string as represented in the
  95. 'Set-Cookie' <acronym>HTTP</acronym> response header or 'Cookie'
  96. <acronym>HTTP</acronym> request header (required)
  97. </para>
  98. </listitem>
  99. <listitem>
  100. <para>
  101. <varname>$refUri</varname>: a reference <acronym>URI</acronym> according to which the cookie's domain and path
  102. will be set. (optional, defaults to parsing the value from the $cookieStr)
  103. </para>
  104. </listitem>
  105. <listitem>
  106. <para>
  107. <varname>$encodeValue</varname>: If the value should be passed through urldecode. Also effects the cookie's
  108. behavior when being converted back to a cookie string. (optional, defaults to true)
  109. </para>
  110. </listitem>
  111. </itemizedlist>
  112. </listitem>
  113. </itemizedlist> <example id="zend.http.cookies.cookie.instantiating.example-1">
  114. <title>Créer un objet Zend_Http_Cookie</title>
  115. <programlisting language="php"><![CDATA[
  116. // D'abord, en utilisant son constructeur.
  117. // ce cookie expirera dans 2 heures
  118. $cookie = new Zend_Http_Cookie('foo',
  119. 'bar',
  120. '.example.com',
  121. time() + 7200,
  122. '/path');
  123. // En prenant l'en-tête de réponse HTTP 'Set-Cookie'
  124. // Ce cookie n'expirera pas et ne sera envoyé que
  125. // sur des connexions sécurisées
  126. $cookie = Zend_Http_Cookie::fromString(
  127. 'foo=bar; domain=.example.com; path=/path; secure');
  128. // Si le domaine n'est pas présent, spécifiez le manuellement :
  129. $cookie = Zend_Http_Cookie::fromString(
  130. 'foo=bar; secure;', 'http://www.example.com/path');
  131. ]]></programlisting>
  132. </example> <note>
  133. <para>
  134. Lorsque vous utilisez la méthode statique
  135. <methodname>Zend_Http_Cookie::fromString()</methodname>, veillez à fournir un
  136. cookie <acronym>URL</acronym> encodé (tel que c'est le cas dans les en-têtes <acronym>HTTP</acronym>). Avec le
  137. constructeur en revanche, il est nécessaire d'utiliser une valeur non
  138. encodée.
  139. </para>
  140. </note>
  141. </para>
  142. <para>
  143. La manipulation inverse est possible. Grâce à la méthode
  144. <methodname>__toString()</methodname>, vous pouvez récupérer une chaîne représentant le cookie, à
  145. partir de l'objet <classname>Zend_Http_Cookie</classname>. La chaîne alors retournée est
  146. la même que celle utilisée dans l'en-tête HTTP "Cookie", à savoir une chaîne encodée,
  147. terminée par un point-virgule (;) : <example
  148. id="zend.http.cookies.cookie.instantiating.example-2">
  149. <title>Passer de l'objet Zend_Http_Cookie à la chaîne</title>
  150. <programlisting language="php"><![CDATA[
  151. // Création d'un nouveau cookie
  152. $cookie = new Zend_Http_Cookie('foo',
  153. 'two words',
  154. '.example.com',
  155. time() + 7200,
  156. '/path');
  157. // Va afficher 'foo=two+words;' :
  158. echo $cookie->__toString();
  159. // Ceci est la même chose
  160. echo (string) $cookie;
  161. // En PHP 5.2 et plus, ceci fonctionne aussi :
  162. echo $cookie;
  163. ]]></programlisting>
  164. </example>
  165. </para>
  166. </sect2>
  167. <sect2 id="zend.http.cookies.cookie.accessors">
  168. <title>Zend_Http_Cookie méthodes getter</title>
  169. <para>
  170. Une fois l'objet <classname>Zend_Http_Cookie</classname> crée, il existe des
  171. méthodes 'getter' pour accéder aux différentes propriétés du cookie : <itemizedlist>
  172. <listitem>
  173. <para><code>string getName()</code>: Retourne le nom du cookie</para>
  174. </listitem>
  175. <listitem>
  176. <para>
  177. <code>string getValue()</code>: Retourne la valeur réelle (décodée),
  178. du cookie
  179. </para>
  180. </listitem>
  181. <listitem>
  182. <para><code>string getDomain()</code>: Retourne le domaine du cookie</para>
  183. </listitem>
  184. <listitem>
  185. <para>
  186. <code>string getPath()</code>: Retourne le chemin du cookie, par
  187. défaut '/'
  188. </para>
  189. </listitem>
  190. <listitem>
  191. <para>
  192. <code>int getExpiryTime()</code>: Retourne la date d'expiration, comme
  193. timestamp UNIX. Si pas de date, <constant>NULL</constant> sera retourné.
  194. </para>
  195. </listitem>
  196. </itemizedlist>
  197. </para>
  198. <para>
  199. Voici encore quelques méthodes de vérifications booléennes : <itemizedlist>
  200. <listitem>
  201. <para>
  202. <code>boolean isSecure()</code>: Regarde si le cookie est un cookie
  203. sécurisé. Si c'est le cas, les navigateurs ont pour instruction de ne les
  204. envoyer que sur des connexions sécurisées (HTTPS).
  205. </para>
  206. </listitem>
  207. <listitem>
  208. <para>
  209. <code>boolean isExpired(int $time = null)</code>: Vérifie si le cookie
  210. est expirés. Si il n'y a pas de date d'expiration, cette méthode retournera
  211. toujours <constant>TRUE</constant>. Si <varname>$time</varname> est fourni, alors la date
  212. du cookie sera comparée à ce <varname>$time</varname>, et non plus au temps
  213. actuel.
  214. </para>
  215. </listitem>
  216. <listitem>
  217. <para>
  218. <code>boolean isSessionCookie()</code>: Vérifie si le cookie est un
  219. cookie dit 'de session'. C'est un cookie sans date d'expiration, sensé être
  220. détruit à la fin de la session de travail actuelle (à la fermeture du
  221. navigateur).
  222. </para>
  223. </listitem>
  224. </itemizedlist>
  225. </para>
  226. <para>
  227. <example id="zend.http.cookies.cookie.accessors.example-1">
  228. <title>Utilisation des méthodes getter de Zend_Http_Cookie</title>
  229. <programlisting language="php"><![CDATA[
  230. // Création d'un cookie
  231. $cookie =
  232. Zend_Http_Cookie::fromString('foo=two+words;'
  233. . ' domain=.example.com;'
  234. . ' path=/somedir;'
  235. . 'secure;'
  236. . 'expires=Wednesday, 28-Feb-05 20:41:22 UTC');
  237. echo $cookie->getName(); // Affiche 'foo'
  238. echo $cookie->getValue(); // Affiche 'two words'
  239. echo $cookie->getDomain(); // Affiche '.example.com'
  240. echo $cookie->getPath(); // Affiche '/'
  241. echo date('Y-m-d', $cookie->getExpiryTime());
  242. // Affiche '2005-02-28'
  243. echo ($cookie->isExpired() ? 'Yes' : 'No');
  244. // Affiche 'Yes'
  245. echo ($cookie->isExpired(strtotime('2005-01-01') ? 'Yes' : 'No');
  246. // Affiche 'No'
  247. echo ($cookie->isSessionCookie() ? 'Yes' : 'No');
  248. // Affiche 'No'
  249. ]]></programlisting>
  250. </example>
  251. </para>
  252. </sect2>
  253. <sect2 id="zend.http.cookies.cookie.matching">
  254. <title>Zend_Http_Cookie: Correspondance de scénario</title>
  255. <para>
  256. La vraie valeur ajoutée d'un objet <classname>Zend_Http_Cookie</classname> est sa
  257. méthode match(). Celle-ci teste le cookie en rapport avec un scénario <acronym>HTTP</acronym>, pour savoir
  258. ci celui-ci doit être attaché à la requête ou pas. La syntaxe est la suivante :
  259. <code>boolean Zend_Http_Cookie-&gt;match(mixed $uri, [boolean $matchSessionCookies, [int
  260. $now]]);</code> <itemizedlist>
  261. <listitem>
  262. <para>
  263. <code>mixed $uri</code> : un objet Zend_Uri_Http avec un domaine et un
  264. chemin à vérifier. Une chaîne représentant une <acronym>URL</acronym> peut aussi être utilisée.
  265. Le cookie sera déclaré bon si le schéma de l'URL (HTTP ou <acronym>HTTPS</acronym>) correspond,
  266. ainsi que le chemin (path).
  267. </para>
  268. </listitem>
  269. <listitem>
  270. <para>
  271. <code>boolean $matchSessionCookies</code> : établit ou non une
  272. correspondance pour les cookies dits de session. Par défaut :
  273. <constant>TRUE</constant>. Si mis à <constant>FALSE</constant>, alors les cookies sans date
  274. d'expiration seront ignorés du processus.
  275. </para>
  276. </listitem>
  277. <listitem>
  278. <para>
  279. <code>int $now</code> : timestamp UNIX passé pour vérifier
  280. l'expiration du cookie. Si non spécifié, alors le temps actuel sera pris en
  281. considération.
  282. </para>
  283. </listitem>
  284. </itemizedlist> <example id="zend.http.cookies.cookie.matching.example-1">
  285. <title>Correspondance de cookies</title>
  286. <programlisting language="php"><![CDATA[
  287. // Création de l'objet cookie - d'abord un cookie sécurisé
  288. $cookie = Zend_Http_Cookie::fromString(
  289. 'foo=two+words; domain=.example.com; path=/somedir; secure;');
  290. $cookie->match('https://www.example.com/somedir/foo.php');
  291. // Retournera true
  292. $cookie->match('http://www.example.com/somedir/foo.php');
  293. // Retournera false, car la connexion n'est pas sécurisée
  294. $cookie->match('https://otherexample.com/somedir/foo.php');
  295. // Retournera false, le domaine est incorrect
  296. $cookie->match('https://example.com/foo.php');
  297. // Retournera false, le chemin est incorrect
  298. $cookie->match('https://www.example.com/somedir/foo.php', false);
  299. // Retournera false, car les cookies de session ne sont pas pris en compte
  300. $cookie->match('https://sub.domain.example.com/somedir/otherdir/foo.php');
  301. // Retournera true
  302. // Création d'un autre objet cookie - cette fois non sécurisé,
  303. // expire dans 2 heures
  304. $cookie = Zend_Http_Cookie::fromString(
  305. 'foo=two+words; domain=www.example.com; expires='
  306. . date(DATE_COOKIE, time() + 7200));
  307. $cookie->match('http://www.example.com/');
  308. // Retournera true
  309. $cookie->match('https://www.example.com/');
  310. // Will return true - non secure cookies can go
  311. // over secure connexions as well!
  312. $cookie->match('http://subdomain.example.com/');
  313. // Retournera false, domaine incorrect
  314. $cookie->match('http://www.example.com/', true, time() + (3 * 3600));
  315. // Retournera false, car nous avons rajouter 3 heures au temps actuel
  316. ]]></programlisting>
  317. </example>
  318. </para>
  319. </sect2>
  320. <sect2 id="zend.http.cookies.cookiejar">
  321. <title>Classe Zend_Http_CookieJar : Instanciation</title>
  322. <para>
  323. Dans la plupart des cas, il ne sera pas nécessaire d'instancier soi-même un objet
  324. <classname>Zend_Http_CookieJar</classname>. Si vous voulez un conteneur de cookie
  325. (CookieJar) attaché à votre objet <classname>Zend_Http_Client</classname>, appelez
  326. simplement <classname>Zend_Http_Client-&gt;setCookieJar()</classname>, et un nouveau
  327. conteneur, vide, y sera attaché. Plus tard, vous pourrez utiliser la méthode
  328. <classname>Zend_Http_Client-&gt;getCookieJar()</classname>, pour récupérer ce
  329. conteneur.
  330. </para>
  331. <para>
  332. Si vous voulez tout de même instancier manuellement un objet
  333. <code>CookieJar</code>, appelez son constructeur avec "<code>new
  334. Zend_Http_CookieJar()</code>", sans paramètres. Sinon il est possible aussi de passer
  335. par la méthode statique <methodname>Zend_Http_CookieJar::fromResponse()</methodname> qui
  336. prend, elle, deux paramètres : un objet <classname>Zend_Http_Response</classname> et un
  337. <acronym>URI</acronym> de référence (un objet <classname>Zend_Uri_Http</classname> ou une chaîne). Cette
  338. méthode retourne alors un objet <classname>Zend_Http_CookieJar</classname> qui
  339. contiendra les cookies de la réponse <acronym>HTTP</acronym> passée. L'URI de référence servira à remplir
  340. les paramètres "domain" et "path" des cookies, si jamais ils n'ont pas été définis dans
  341. les en-têtes "Set-Cookie".
  342. </para>
  343. </sect2>
  344. <sect2 id="zend.http.cookies.cookiejar.adding_cookies">
  345. <title>Ajouter des cookies à un objet Zend_Http_CookieJar</title>
  346. <para>
  347. En temps normal, c'est l'objet <classname>Zend_Http_Client</classname> qui
  348. ajoutera des cookies dans l'objet <code>CookieJar</code> que vous lui aurez attaché.
  349. Vous pouvez en ajouter manuellement aussi : <itemizedlist>
  350. <listitem>
  351. <para>
  352. <classname>Zend_Http_CookieJar-&gt;addCookie($cookie[,
  353. $ref_uri])</classname>: Ajoute un cookie au conteneur (Jar). $cookie peut
  354. être soit un objet <classname>Zend_Http_Cookie</classname>, soit une chaîne
  355. qui sera alors convertie de manière automatique en objet cookie. Si vous
  356. passez une chaîne, alors vous devriez aussi passer le paramètre $ref_uri qui
  357. représente l'URI de référence pour déterminer les paramètres "domain" et
  358. "path" du cookie.
  359. </para>
  360. </listitem>
  361. <listitem>
  362. <para>
  363. <classname>Zend_Http_CookieJar-&gt;addCookiesFromResponse($response,
  364. $ref_uri)</classname>: Ajoute tous les cookies présents dans une réponse
  365. <acronym>HTTP</acronym> au conteneur. La réponse <acronym>HTTP</acronym> doit être un objet
  366. <classname>Zend_Http_Response</classname> contenant au moins un en-tête
  367. "Set-Cookie". <classname>$ref_uri</classname> est un <acronym>URI</acronym> (un objet
  368. Zend_Uri_Http ou une chaîne), servant de référence pour remplir les
  369. paramètres du cookie "domain" et "path", si ceux-ci ne sont pas trouvés dans
  370. la réponse.
  371. </para>
  372. </listitem>
  373. </itemizedlist>
  374. </para>
  375. </sect2>
  376. <sect2 id="zend.http.cookies.cookiejar.getting_cookies">
  377. <title>Récupérer les cookies présents dans un objet Zend_Http_CookieJar</title>
  378. <para>
  379. Comme pour l'ajout de cookies, en théorie, vous n'aurez pas besoin de récupérer
  380. des cookies du conteneur, car l'objet <classname>Zend_Http_Client</classname> se
  381. chargera de les gérer lui-même et de les envoyer dans les bonnes requêtes. Cependant, il
  382. existe des méthodes pour récupérer des cookies depuis un conteneur (Jar) :
  383. <methodname>getCookie()</methodname>, <methodname>getAllCookies()</methodname>, et
  384. <methodname>getMatchingCookies()</methodname>. De plus, itérer sur le CookieJar vous permettra d'en
  385. extraire tous les objets <classname>Zend_Http_Cookie</classname>.
  386. </para>
  387. <para>
  388. Il est important de noter que chacune de ces trois méthodes, prend un paramètre
  389. spécial destiné à déterminer le type que chaque méthode retournera. Ce paramètre peut
  390. avoir 3 valeurs: <itemizedlist>
  391. <listitem>
  392. <para>
  393. <classname>Zend_Http_CookieJar::COOKIE_OBJECT</classname>: Retourne un
  394. objet <classname>Zend_Http_Cookie</classname>. Si plus d'un cookie devait
  395. être retourné, il s'agira alors d'un tableau d'objets cookie.
  396. </para>
  397. </listitem>
  398. <listitem>
  399. <para>
  400. <classname>Zend_Http_CookieJar::COOKIE_STRING_ARRAY</classname>:
  401. Retourne les cookies comme des chaînes de caractères dans un format
  402. "foo=bar", correspondant au format de l'en-tête de requête <acronym>HTTP</acronym> "Cookie". Si
  403. plus d'un cookie devait être retourné, il s'agira alors d'un tableau de
  404. chaînes.
  405. </para>
  406. </listitem>
  407. <listitem>
  408. <para>
  409. <classname>Zend_Http_CookieJar::COOKIE_STRING_CONCAT</classname>:
  410. Similaire à COOKIE_STRING_ARRAY, mais si plusieurs cookies devaient être
  411. retournés, alors il ne s'agira plus d'un tableau, mais d'une chaîne
  412. concaténant tous les cookies, séparés par des point-virgule (;). Ceci est
  413. très utile pour passer tous les cookies d'un coup, dans l'en-tête <acronym>HTTP</acronym>
  414. "Cookie".
  415. </para>
  416. </listitem>
  417. </itemizedlist>
  418. </para>
  419. <para>
  420. Voici la structure des méthodes de récupération des cookies : <itemizedlist>
  421. <listitem>
  422. <para>
  423. <classname>Zend_Http_CookieJar-&gt;getCookie($uri, $cookie_name[,
  424. $ret_as])</classname>: Retourne un cookie depuis le conteneur, selon son <acronym>URI</acronym>
  425. (domain et path), et son nom. <varname>$uri</varname> est un objet
  426. <classname>Zend_Uri_Http</classname> ou une chaîne. $cookie_name est une
  427. chaîne identifiant le cookie en question. $ret_as spécifie le type de
  428. retour, comme vu plus haut (par défaut COOKIE_OBJECT).
  429. </para>
  430. </listitem>
  431. <listitem>
  432. <para>
  433. <classname>Zend_Http_CookieJar-&gt;getAllCookies($ret_as)</classname>:
  434. Retourne tous les cookies du conteneur. $ret_as spécifie le type de retour,
  435. comme vu plus haut (par défaut COOKIE_OBJECT).
  436. </para>
  437. </listitem>
  438. <listitem>
  439. <para>
  440. <classname>Zend_Http_CookieJar-&gt;getMatchingCookies($uri[,
  441. $matchSessionCookies[, $ret_as[, $now]]])</classname>: Retourne tous les
  442. cookies ayant une correspondance pour un scénario donné, à savoir un <acronym>URI</acronym> et
  443. une date d'expiration. <itemizedlist>
  444. <listitem>
  445. <para>
  446. <varname>$uri</varname> est soit un objet Zend_Uri_Http soit une
  447. chaîne.
  448. </para>
  449. </listitem>
  450. <listitem>
  451. <para>
  452. <varname>$matchSessionCookies</varname> est un booléen désignant
  453. si les cookies de session, c'est à dire sans date d'expiration,
  454. doivent être analysés aussi pour établir une correspondance. Par
  455. défaut : <constant>TRUE</constant>.
  456. </para>
  457. </listitem>
  458. <listitem>
  459. <para>
  460. <varname>$ret_as</varname> spécifie le type de retour, comme vu
  461. plus haut (par défaut COOKIE_OBJECT).
  462. </para>
  463. </listitem>
  464. <listitem>
  465. <para>
  466. <varname>$now</varname> est un entier représentant un timestamp
  467. UNIX à considérer comme 'maintenant'. Ainsi tous les cookies
  468. expirant avant ce temps là, ne seront pas pris en compte. Si
  469. vous ne spécifiez pas ce paramètre, alors c'est le temps actuel
  470. qui sera pris comme référence.
  471. </para>
  472. </listitem>
  473. </itemizedlist> Vous pouvez en apprendre plus sur la correspondance des
  474. cookies ici : <xref linkend="zend.http.cookies.cookie.matching" />.
  475. </para>
  476. </listitem>
  477. </itemizedlist>
  478. </para>
  479. </sect2>
  480. </sect1>