Zend_Http_Cookie-Handling.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 17172 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.http.cookies">
  5. <title>Zend_Http_Cookie und Zend_Http_CookieJar</title>
  6. <sect2 id="zend.http.cookies.introduction">
  7. <title>Einführung</title>
  8. <para>
  9. Wie erwartet ist <classname>Zend_Http_Cookie</classname> eine Klasse, die einen
  10. HTTP-Cookie darstellt. Sie stellt Methoden zum Verarbeiten von HTTP-Antwort-Strings,
  11. Sammeln von Cookies und dem einfachen Zugriff auf deren Eigenschaften zur
  12. Verfügung. So ist es auch möglich verschiedene Zustände eines Cookies
  13. zu überprüfen, z.B. den Anfrage-URL, die Ablaufzeit, das Vorliegen
  14. einer sicheren Verbindung, etc.
  15. </para>
  16. <para>
  17. <classname>Zend_Http_CookieJar</classname> ist ein Objekt, das normalerweise von der
  18. Klasse <classname>Zend_Http_Client</classname> genutzt wird und einen Satz von
  19. <classname>Zend_Http_Cookie</classname> Objekten beinhaltet. Die Idee ist das wenn ein
  20. <classname>Zend_Http_CookieJar</classname> an ein
  21. <classname>Zend_Http_Client</classname> Objekt angehängt wird, alle ein- und ausgehenden
  22. Cookies der HTTP-Anfragen und -Antworten im CookieJar Objekt gespeichert werden. Bei
  23. einer neuen Anfrage seitens des Clients wird nach allen Cookies,
  24. die auf diese Anfrage zutreffen, gesucht. Diese werden automatisch
  25. zum Anfrage-Header hinzugefügt, was besonders nützlich ist, wenn man
  26. eine Benutzersession über aufeinanderfolgende HTTP-Anfragen beibehalten
  27. muss; die Session-ID wird automatisch gesendet, wenn es notwendig ist.
  28. Ferner ist es möglich, <classname>Zend_Http_CookieJar</classname> Objekte zu
  29. serialisieren und, wenn nötig, in $_SESSION zu speichern.
  30. </para>
  31. </sect2>
  32. <sect2 id="zend.http.cookies.cookie.instantiating">
  33. <title>Instanzieren von Zend_Http_Cookie Objekten</title>
  34. <para>
  35. Es gibt zwei Möglichkeiten ein Cookie Objekt zu erstellen:
  36. <itemizedlist>
  37. <listitem>
  38. <para>
  39. Mithilfe des Konstruktors und der folgenden Syntax:
  40. <code>new <classname>Zend_Http_Cookie</classname>(string $name, string $value, string $domain, [int
  41. $expires, [string $path, [boolean $secure]]]);</code>
  42. </para>
  43. <itemizedlist>
  44. <listitem>
  45. <para>
  46. <varname>$name</varname>: Name des Cookies (notwendig)
  47. </para>
  48. </listitem>
  49. <listitem>
  50. <para>
  51. <varname>$value</varname>: Inhalt des Cookies (notwendig)
  52. </para>
  53. </listitem>
  54. <listitem>
  55. <para>
  56. <varname>$domain</varname>: Die Domain des Cookies (z.B.
  57. '.example.com') (notwendig)
  58. </para>
  59. </listitem>
  60. <listitem>
  61. <para>
  62. <varname>$expires</varname>: Ablaufzeit des Cookies als UNIX
  63. Zeitstempel (optional, standardmäßig null). Ein Nichtsetzen führt zu
  64. einer Behandlung als 'Session-Cookie', das keine Ablaufzeit enthält.
  65. </para>
  66. </listitem>
  67. <listitem>
  68. <para>
  69. <varname>$path</varname>: Pfad des Cookies, z.B. '/foo/bar/'
  70. (optional, standardmäßig '/')
  71. </para>
  72. </listitem>
  73. <listitem>
  74. <para>
  75. <varname>$secure</varname>: Boolean, ob der Cookie nur über sichere
  76. Verbindungen (HTTPS) gesendet werden darf (optional, standardmäßig
  77. boolean FALSE)
  78. </para>
  79. </listitem>
  80. </itemizedlist>
  81. </listitem>
  82. <listitem>
  83. <para>
  84. Durch das Aufrufen der statischen fromString()-Methode mit einem
  85. Cookie-String, wie er unter 'Set-Cookie' in einer HTTP-Antwort und 'Cookie'
  86. in einer -Anfrage zu finden ist. In diesem Fall muss der Cookie-Inhalt
  87. bereits kodiert sein. Falls der Cookie-String keinen 'domain'-Teil enthält,
  88. muss man selbst einen Referenz-URI angeben, aus dem die Domain und der Pfad
  89. des Cookies bestimmt wird.
  90. </para>
  91. </listitem>
  92. </itemizedlist>
  93. <example id="zend.http.cookies.cookie.instantiating.example-1">
  94. <title>Instanzieren eines Zend_Http_Cookie-Objekts</title>
  95. <programlisting language="php"><![CDATA[
  96. // Zuerst nutzen wir den Konstruktor. Der Cookie wird in zwei Stunden ablaufen
  97. $cookie = new Zend_Http_Cookie('foo',
  98. 'bar',
  99. '.example.com',
  100. time() + 7200,
  101. '/path');
  102. // Man kann auch den HTTP-Antwort 'Set-Cookie'-header dafür nutzen.
  103. // Dieser Cookie ist ähnlich zum vorangegangenen, allerdings wird
  104. // er nicht ablaufen und nur über sichere Verbindungen gesendet.
  105. $cookie = Zend_Http_Cookie::fromString('foo=bar; domain=.example.com; ' .
  106. 'path=/path; secure');
  107. // Wenn die Domain des Cookies nicht gesetzt ist, muss man ihn selbst angeben.
  108. $cookie = Zend_Http_Cookie::fromString('foo=bar; secure;',
  109. 'http://www.example.com/path');
  110. ]]></programlisting>
  111. </example>
  112. <note>
  113. <para>
  114. Beim Instanzieren eines Cookie Objekts mit der
  115. <classname>Zend_Http_Cookie</classname>::fromString()-Methode wird erwartet,
  116. dass der Cookie-Inhalt URL-kodiert ist, wie es bei Cookie-Strings sein sollte.
  117. Allerdings wird angenommen, dass der Inhalt bei Verwendung des Konstruktors in
  118. seiner eigentlichen Form, d.h. nicht URL-kodiert, übergeben wird.
  119. </para>
  120. </note>
  121. </para>
  122. <para>
  123. Ein Cookie Objekt kann durch die magische __toString()-Methode zurück in einen String
  124. umgewandelt werden. Diese Methode erstellt einen HTTP-Anfrage "Cookie"-Header String,
  125. der den Namen sowie den Inhalt des Cookies enthält und durch ein Semikolon (';')
  126. abgeschlossen ist. Der Inhalt wird URL-kodiert, wie es für einen Cookie-Header
  127. vorgeschrieben ist:
  128. <example id="zend.http.cookies.cookie.instantiating.example-2">
  129. <title>Transformation eines Zend_Http_Cookie-Objekts zu einem String</title>
  130. <programlisting language="php"><![CDATA[
  131. // Erstellt einen neuen Cookie
  132. $cookie = new Zend_Http_Cookie('foo',
  133. 'two words',
  134. '.example.com',
  135. time() + 7200,
  136. '/path');
  137. // Gibt 'foo=two+words;' aus
  138. echo $cookie->__toString();
  139. // Bezweckt dasselbe
  140. echo (string) $cookie;
  141. // Ab PHP 5.2 funktioniert auch diese Variante
  142. echo $cookie;
  143. ]]></programlisting>
  144. </example>
  145. </para>
  146. </sect2>
  147. <sect2 id="zend.http.cookies.cookie.accessors">
  148. <title>Zend_Http_Cookie getter-Methoden</title>
  149. <para>
  150. Sobald ein <classname>Zend_Http_Cookie</classname> instanziert wurde, stellt es diverse
  151. getter-Methoden zur Verfügung, die es einem ermöglichen, auf die verschiedenen
  152. Eigenschaften des HTTP-Cookies zuzugreifen:
  153. <itemizedlist>
  154. <listitem>
  155. <para>
  156. <code>string getName()</code>: Gibt den Namen des Cookies zurück
  157. </para>
  158. </listitem>
  159. <listitem>
  160. <para>
  161. <code>string getValue()</code>: Gibt den wirklichen, also nicht kodierten,
  162. Inhalt zurück
  163. </para>
  164. </listitem>
  165. <listitem>
  166. <para>
  167. <code>string getDomain()</code>: Gibt die Domain des Cookies zurück
  168. </para>
  169. </listitem>
  170. <listitem>
  171. <para>
  172. <code>string getPath()</code>: Gibt den Pfad des Cookies zurück; dessen
  173. Standardwert ist '/'
  174. </para>
  175. </listitem>
  176. <listitem>
  177. <para>
  178. <code>int getExpiryTime()</code>: Gibt die Ablaufzeit des Cookies als
  179. UNIX-Timestamp zurück. Falls der Cookie keine Ablaufzeit besitzt, wird NULL
  180. zurückgegeben.
  181. </para>
  182. </listitem>
  183. </itemizedlist>
  184. </para>
  185. <para>
  186. Zusätzlich gibt es einige boolesche tester-Methoden:
  187. <itemizedlist>
  188. <listitem>
  189. <para>
  190. <code>boolean isSecure()</code>: Gibt zurück, ob der Cookie nur über sichere
  191. Verbindungen gesendet werden kann. Wenn true zurückgegeben wird, wird der
  192. Cookie also nur über HTTPS versendet.
  193. </para>
  194. </listitem>
  195. <listitem>
  196. <para>
  197. <code>boolean isExpired(int $time = null)</code>: Überprüft, ob der Cookie
  198. bereits abgelaufen ist. Wenn der Cookie keine Ablaufzeit besitzt, wird diese
  199. Methode immer true zurückgegeben. Wenn $time übergeben wurde, wird der
  200. aktuelle Zeitstempel überschrieben und der übergebene Zeitstempel zur
  201. Überprüfung genutzt.
  202. </para>
  203. </listitem>
  204. <listitem>
  205. <para>
  206. <code>boolean isSessionCookie()</code>: Überprüft, ob der Cookie ein
  207. "Session-Cookie" ist, der keine Ablaufzeit besitzt und erst abläuft, wenn
  208. die Session beendet wird.
  209. </para>
  210. </listitem>
  211. </itemizedlist>
  212. </para>
  213. <para>
  214. <example id="zend.http.cookies.cookie.accessors.example-1">
  215. <title>Nutzen der getter-Methoden von Zend_Http_Cookie</title>
  216. <programlisting language="php"><![CDATA[
  217. // Zuerst wird der Cookie erstellt
  218. $cookie = Zend_Http_Cookie::fromString(
  219. 'foo=two+words; ' +
  220. 'domain=.example.com; ' +
  221. 'path=/somedir; ' +
  222. 'secure; ' +
  223. 'expires=Wednesday, 28-Feb-05 20:41:22 UTC');
  224. echo $cookie->getName(); // Gibt 'foo' aus
  225. echo $cookie->getValue(); // Gibt 'two words' aus
  226. echo $cookie->getDomain(); // Gibt '.example.com' aus
  227. echo $cookie->getPath(); // Gibt '/' aus
  228. echo date('Y-m-d', $cookie->getExpiryTime());
  229. // Gibt '2005-02-28' aus
  230. echo ($cookie->isExpired() ? 'Ja' : 'Nein');
  231. // Gibt 'Ja' aus
  232. echo ($cookie->isExpired(strtotime('2005-01-01') ? 'Ja' : 'Nein');
  233. // Gibt 'Nein' aus
  234. echo ($cookie->isSessionCookie() ? 'Ja' : 'Nein');
  235. // Gibt 'Nein' aus
  236. ]]></programlisting>
  237. </example>
  238. </para>
  239. </sect2>
  240. <sect2 id="zend.http.cookies.cookie.matching">
  241. <title>Zend_Http_Cookie: Überprüfen von Szenarien</title>
  242. <para>
  243. Die einzige wirkliche Logik in einem <classname>Zend_Http_Cookie</classname> Objekt
  244. befindet sich in der match()-Methode. Sie wird genutzt um zu Überprüfen, ob ein Cookie
  245. auf eine HTTP-Anfrage zutrifft, um zu entscheiden, ob der Cookie in der Anfrage gesendet
  246. werden soll. Die Methode hat folgende Syntax und Parameter:
  247. <code>boolean Zend_Http_Cookie->match(mixed $uri, [boolean $matchSessionCookies,
  248. [int $now]]);</code>
  249. <itemizedlist>
  250. <listitem>
  251. <para>
  252. <code>mixed $uri</code>: Ein zu überprüfendes
  253. <classname>Zend_Uri_Http</classname> Objekt mit einer Domain und einem Pfad.
  254. Wahlweise kann stattdessen jedoch auch ein String, der einen validen
  255. HTTP-URL darstellt, übergeben werden. Der Cookie ist zutreffend, wenn das
  256. URL-Schema (HTTP oder HTTPS), die Domain sowie der Pfad passen.
  257. </para>
  258. </listitem>
  259. <listitem>
  260. <para>
  261. <code>boolean $matchSessionCookies</code>: Gibt an, ob Session-Cookies
  262. zutreffen sollen. Standardmäßig ist dieser Parameter true. Wenn false
  263. stattdessen übergeben wird, werden Cookies ohne Ablaufzeit nie zutreffen.
  264. </para>
  265. </listitem>
  266. <listitem>
  267. <para>
  268. <code>int $now</code>: Ablaufzeit (in Form eines UNIX-Zeitstempels) auf
  269. welche der Cookie überprüft wird. Wenn sie nicht angegeben wird, wird die
  270. gegenwärtige Zeit genutzt.
  271. </para>
  272. </listitem>
  273. </itemizedlist>
  274. <example id="zend.http.cookies.cookie.matching.example-1">
  275. <title>Zutreffen von Cookies</title>
  276. <programlisting language="php"><![CDATA[
  277. // Erstellen eines Cookie Objekts - zuerst ein sicherer Cookie ohne Ablaufzeit
  278. $cookie = Zend_Http_Cookie::fromString('foo=two+words; ' +
  279. 'domain=.example.com; ' +
  280. 'path=/somedir; ' +
  281. 'secure;');
  282. $cookie->match('https://www.example.com/somedir/foo.php');
  283. // Gibt true zurück
  284. $cookie->match('http://www.example.com/somedir/foo.php');
  285. // Gibt false zurück, da die Verbindung nicht sicher ist
  286. $cookie->match('https://otherexample.com/somedir/foo.php');
  287. // Gibt false zurück, da die Domain falsch ist
  288. $cookie->match('https://example.com/foo.php');
  289. // Gibt false zurück, da der Pfad falsch ist
  290. $cookie->match('https://www.example.com/somedir/foo.php', false);
  291. // Gibt false zurück, da keine Session-Cookies akzeptiert werden
  292. $cookie->match('https://sub.domain.example.com/somedir/otherdir/foo.php');
  293. // Gibt true zurück
  294. // Erstellen eines anderen Cookie-Objekts - diesmal unsicher und
  295. // einer Ablaufzeit die zwei Stunden in der Zukunft liegt
  296. $cookie = Zend_Http_Cookie::fromString('foo=two+words; ' +
  297. 'domain=www.example.com; ' +
  298. 'expires='
  299. . date(DATE_COOKIE, time() + 7200));
  300. $cookie->match('http://www.example.com/');
  301. // Gibt true zurück
  302. $cookie->match('https://www.example.com/');
  303. // Gibt true zurück, da unsichere Cookies genauso gut über sichere
  304. // Verbindungen übertragen werden können
  305. $cookie->match('http://subdomain.example.com/');
  306. // Gibt false zurück, da die Domain unzutreffend ist
  307. $cookie->match('http://www.example.com/', true, time() + (3 * 3600));
  308. // Gibt false zurück, da die Ablaufzeit drei Stunden in der Zukunft
  309. // liegt
  310. ]]></programlisting>
  311. </example>
  312. </para>
  313. </sect2>
  314. <sect2 id="zend.http.cookies.cookiejar">
  315. <title>Die Zend_Http_CookieJar Klasse: Instanzierung</title>
  316. <para>
  317. In den meisten Fällen ist es nicht notwendig, ein
  318. <classname>Zend_Http_CookieJar</classname> Objekt direkt zu erstellen. Wenn man ein
  319. neues CookieJar zum <classname>Zend_Http_Client</classname> Objekts hinzufügen will,
  320. muss man lediglich die Methode Zend_Http_Client->setCookieJar( aufrufen, die ein neues
  321. und leeres CookieJar zum Client hinzufügt. Später kann man dieses CookieJar via
  322. Zend_Http_Client->getCookieJar() holen.
  323. </para>
  324. <para>
  325. Wenn dennoch ein CookieJar Objekt manuell erstellen werden soll, kann man dies
  326. direkt durch "new Zend_Http_CookieJar()" erreichen - der Konstruktor benötigt
  327. keine Parameter. Ein anderer Weg zum Instanzieren eines CookieJar Objekts ist
  328. es, die statische Methode Zend_Http_CookieJar::fromResponse() zu nutzen. Diese
  329. Methode benötigt zwei Parameter: ein <classname>Zend_Http_Response</classname> Objekt
  330. und einen Referenz_URI, entweder in Form eines Strings oder eines
  331. <classname>Zend_Uri_Http</classname> Objekts. Es wird ein
  332. <classname>Zend_Http_CookieJar</classname> Objekt zurückgegeben, das bereits die
  333. Cookies, die durch die HTTP-Antwort gesetzt wurden, enthält. Der Referenz-URI wird
  334. genutzt um die Domain und den Pfad des Cookies zu setzen, sofern sie nicht in den
  335. Set-Cookie-Headern definiert wurden.
  336. </para>
  337. </sect2>
  338. <sect2 id="zend.http.cookies.cookiejar.adding_cookies">
  339. <title>Hinzufügen von Cookies zu einem Zend_Http_CookieJar Objekt</title>
  340. <para>
  341. Normalerweise werden die, durch HTTP-Antworten gesetzen, Cookies vom
  342. <classname>Zend_Http_Client</classname> Objekt automatisch zu dessen CookieJar
  343. hinzugefügt. Wenn man es wünscht, kann man Cookies auch manuell zum CookieJar
  344. hinzufügen, was durch Nutzen zweier Methoden erreicht werden kann:
  345. <itemizedlist>
  346. <listitem>
  347. <para>
  348. <classname>Zend_Http_CookieJar->addCookie($cookie[, $ref_uri])</classname>:
  349. Hinzufügen eines einzelnen Cookies zum CookieJar. $cookie kann entweder ein
  350. <classname>Zend_Http_Cookie</classname> Objekt oder ein String, der
  351. automatisch zu einem Cookie Objekt transformiert wird, sein. Wenn ein String
  352. übergeben wird, sollte man jedoch zusätzlich immer $ref_uri übergeben, da
  353. dieser einen Referenz-URI darstellt - in Form eines Strings oder eines
  354. <classname>Zend_Uri_Http</classname> Objekts - dessen Werte als Standard für
  355. die Domain und den Pfad des Cookies genutzt werden.
  356. </para>
  357. </listitem>
  358. <listitem>
  359. <para>
  360. <classname>Zend_Http_CookieJar->addCookiesFromResponse($response,
  361. $ref_uri)</classname>: Fügt alle Cookies zum CookieJar hinzu, die in
  362. einer einzelnen HTTP-Antwort gesetzt wurden. Es wird erwartet, dass
  363. $response ein <classname>Zend_Http_Response</classname> Objekt mit
  364. Set-Cookie-Headern ist. $ref_uri ist ein Anfrage-URI in Form eines Strings
  365. oder eines <classname>Zend_Uri_Http</classname> Objekts dessen Inhalt die
  366. Standarddomain und den -pfad des Cookies bestimmt.
  367. </para>
  368. </listitem>
  369. </itemizedlist>
  370. </para>
  371. </sect2>
  372. <sect2 id="zend.http.cookies.cookiejar.getting_cookies">
  373. <title>Abrufen der Cookies von einem Zend_Http_CookieJar-Objekts</title>
  374. <para>
  375. Wie beim Hinzufügen von Cookies ist es normalerweise nicht notwendig,
  376. die Cookies manuell von einem CookieJar Objekt zu holen. Das
  377. <classname>Zend_Http_Client</classname> Objekt holt automatisch alle benötigten Cookies
  378. für eine HTTP-Anfrage. Allerdings gibt es drei Methoden die Cookies aus einem CookieJar
  379. zu holen: <methodname>getCookie()</methodname>,
  380. <methodname>getAllCookies()</methodname>, und
  381. <methodname>getMatchingCookies()</methodname>. Zusätzlich erhält man alle
  382. <classname>Zend_Http_Cookie</classname> Objekte von CookieJar wenn man durch Ihn
  383. iteriert.
  384. </para>
  385. <para>
  386. Es ist wichtig anzumerken, dass jede dieser Methoden einen speziellen
  387. Parameter verlangt, der den Rückgabetyp der Methode festlegt. Dieser
  388. Parameter kann drei verschiedene Werte annehmen:
  389. <itemizedlist>
  390. <listitem>
  391. <para>
  392. <classname>Zend_Http_CookieJar::COOKIE_OBJECT</classname>: Gibt ein
  393. <classname>Zend_Http_Cookie</classname> Objekt zurück. Wenn diese Methode mehr
  394. als einen Cookie zurückgeben sollte, wird stattdessen ein Array aus Objekten
  395. zurückgegeben.
  396. </para>
  397. </listitem>
  398. <listitem>
  399. <para>
  400. <classname>Zend_Http_CookieJar::COOKIE_STRING_ARRAY</classname>: Gibt Cookies
  401. als Strings - im Format "foo=bar" - zurück, welche passend für das
  402. Senden im "Cookie"-Header einer HTTP-Anfrage sind. Wenn mehr als
  403. ein Cookie zurückgegeben werden sollte, wird stattdessen ein Array
  404. solcher Strings zurückgegeben.
  405. </para>
  406. </listitem>
  407. <listitem>
  408. <para>
  409. <classname>Zend_Http_CookieJar::COOKIE_STRING_CONCAT</classname>: Ähnlich zu
  410. COOKIE_STRING_ARRAY; allerdings gibt diese Methode, falls mehr als
  411. ein Cookie zurückgegeben wird, einen einzelnen, langen String zurück,
  412. der die Cookies anhand eines Semikolons (;) trennt. Dieses Prozedere
  413. ist besonders hilfreich, wenn man alle zutreffenden Cookies in einem
  414. einzelnen "Cookie"-Header einer HTTP-Anfrage zurückgeben will.
  415. </para>
  416. </listitem>
  417. </itemizedlist>
  418. </para>
  419. <para>
  420. Die Struktur der unterschiedlichen Cookie-Abrufmethoden wird unterhalb beschrieben:
  421. <itemizedlist>
  422. <listitem>
  423. <para>
  424. <classname>Zend_Http_CookieJar->getCookie($uri, $cookie_name[,
  425. $ret_as])</classname>: Gibt einen einzelnen Cookie von dem CookieJar zurück,
  426. dessen URI (Domain und Pfad) und Name zu den Parametern passen. $uri ist
  427. entweder ein String oder ein <classname>Zend_Http_Uri</classname> Objekt, die
  428. den URI darstellen. $cookie_name ist ein String zum Identifizieren des
  429. Cookie-Namens. $ret_as ist ein optionaler Parameter, der angibt, von welchem Typ
  430. der zurückgegebene Wert ist. Der Standardwert ist COOKIE_OBJECT.
  431. </para>
  432. </listitem>
  433. <listitem>
  434. <para>
  435. <classname>Zend_Http_CookieJar->getAllCookies($ret_as)</classname>: Holt alle
  436. Cookies aus dem CookieJar. $ret_as gibt den Rückgabetyp - wie oben bereits
  437. beschrieben - an. Wenn er nicht angegeben wird, nimmt er COOKIE_OBJECT an.
  438. </para>
  439. </listitem>
  440. <listitem>
  441. <para>
  442. <classname>Zend_Http_CookieJar->getMatchingCookies($uri[, $matchSessionCookies[,
  443. $ret_as[, $now]]])</classname>: Gibt alle Cookies vom CookieJar zurück, die
  444. mit der Ablaufzeit und dem URI übereinstimmen.
  445. <itemizedlist>
  446. <listitem>
  447. <para>
  448. <varname>$uri</varname> ist entweder ein
  449. <classname>Zend_Uri_Http</classname> Objekt oder ein String, der den
  450. Verbindungstyp (sicher oder unsicher), die Domain und den Pfad angibt.
  451. Nach diesen Informationen wird im CookieJar gesucht.
  452. </para>
  453. </listitem>
  454. <listitem>
  455. <para>
  456. <varname>$matchSessionCookies</varname> ist ein boolescher Ausdruck, der
  457. festlegt, ob nach Session-Cookies gesucht werden soll. Session-Cookies
  458. sind Cookies, die keine Ablaufzeit enthalten. Standardmäßig ist dieser
  459. Wert true.
  460. </para>
  461. </listitem>
  462. <listitem>
  463. <para>
  464. <varname>$ret_as</varname> gibt den Rückgabetyp - wie oben beschrieben
  465. - an. Wenn keiner angegeben wird, wird COOKIE_OBJECT angenommen.
  466. </para>
  467. </listitem>
  468. <listitem>
  469. <para>
  470. <varname>$now</varname> ist ein Integer der einen UNIX-Zeitstempel
  471. darstellt. Cookies, die vor der angegeben Zeit ablaufen, werden nicht
  472. zurückgegeben. Wenn dieser Parameter nicht angegeben wird, wird
  473. stattdessen die aktuelle Zeit gewählt.
  474. </para>
  475. </listitem>
  476. </itemizedlist>
  477. Mehr über das Zutreffen von Cookies gibt es hier:
  478. <xref linkend="zend.http.cookies.cookie.matching" />.
  479. </para>
  480. </listitem>
  481. </itemizedlist>
  482. </para>
  483. </sect2>
  484. </sect1>
  485. <!--
  486. vim:se ts=4 sw=4 et:
  487. -->