Подтвердить что ты не робот

Как использовать файлы cookie в Zend?

Как я использую Zend_Http_Cookie для установки и чтения файлов cookie?

Я пытаюсь установить cookie следующим образом:

$cookie = new Zend_Http_Cookie('TestCookie','TestValue','localhost.com'), но cookie не создается. Также как я читаю файлы cookie с Zend?

Спасибо

4b9b3361

Ответ 1

Насколько я знаю, в Zend Framework нет класса setCookie. Просто используйте "простой" php:

setcookie('cookieName', 'value', 'lifetime', 'path', 'domain');

Чтобы прочитать файл cookie, вы можете использовать Zend_Controller_Request_Http(); в качестве примера:

  $request = new Zend_Controller_Request_Http();
  $myCookie = $request->getCookie('cookieName');

Ответ 2

Для Zend 1.12 есть способ установки файлов cookie для объекта ответа.

Ссылка на часть руководства приведена ниже. Я также приложил свои примеры, если страница когда-либо исчезнет.

http://framework.zend.com/manual/1.12/en/zend.controller.response.html#zend.controller.response.headers.setcookie

$this->getResponse()->setRawHeader(new Zend_Http_Header_SetCookie(
    'foo', 'bar', NULL, '/', 'example.com', false, true
));

или

$cookie = new Zend_Http_Header_SetCookie();
$cookie->setName('foo')
       ->setValue('bar')
       ->setDomain('example.com')
           ->setPath('/')
       ->setHttponly(true);
$this->getResponse()->setRawHeader($cookie);

Важно использовать объекты и классы Zend, чтобы вы не сталкивались с проблемами при создании тестов;)

Ответ 3

Из Zend github issue о нескольких файлах cookie:

$setCookieHeader = new Zend_Http_Header_SetCookie('othername1', 'othervalue1');
$appendCookie = new Zend_Http_Header_SetCookie('othername2', 'othervalue2');
$headerLine = $setCookieHeader->toStringMultipleHeaders(array($appendCookie));

$this->getResponse()->setRawHeader($headerLine);

Ответ 4

Глядя на docs для Cookie и помня о прошлом опыте, нет способа сообщить, что объект cookie будет отправлен вместе с Response.

Я предлагаю просто использовать setcookie().