Zend_Http_Cookie-Handling.xml 24 KB

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