установить cookie в Zend Framework - PullRequest
7 голосов
/ 01 марта 2012

Я новичок в Zend Framework. Я написал этот код, чтобы установить cookie на моем веб-сайте.

public function setCookie($data){
    $email_cookie = new Zend_Http_Cookie('user_email_id', $data['user_email_id'], $_SERVER['HTTP_HOST'], '', FALSE);
    $pass_cookie = new Zend_Http_Cookie('user_password', $data['user_password'], $_SERVER['HTTP_HOST'], '', FALSE);
    $cookie_jar = new Zend_Http_CookieJar();
    $cookie_jar->addCookie($email_cookie);
    $cookie_jar->addCookie($pass_cookie);
}

Я даже не знаю, написав этот код, мои куки установлены или нет? сейчас Если я хочу получить куки, то как я могу это сделать?

Ответы [ 5 ]

18 голосов
/ 01 марта 2012

Zend_Http_Cookie не для настройки файлов cookie. Это класс, используемый Zend_Http_Client для отправки и получения данных с сайтов, которым требуются файлы cookie. Чтобы установить куки, просто используйте стандартную функцию PHP setcookie () :

setcookie('user_email_id', $data['user_email_id'], time() + 3600, '/');
setcookie('user_password', $data['user_password'], time() + 3600, '/');

это установит куки, срок действия которых истекает через 1 час. Вы можете получить к ним доступ при последующих запросах, используя $_COOKIE['user_email_id'] и $_COOKIE['user_password']; или если вы используете классы MVC ZF: $this->getRequest()->getCookie('user_email_id') (из метода контроллера).

2 голосов
/ 09 февраля 2015

Ваши куки установлены путем отправки ответа. Вы можете изменить ответ в своем коде.

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

По умолчанию фронт-контроллер отправляет ответ по завершении отправки запроса; как правило, вам никогда не нужно будет звонить. http://framework.zend.com/manual/1.12/en/zend.controller.response.html

1 голос
/ 01 марта 2012

Используйте этот способ, которым вы можете сделать это

в вашем контроллере сделайте это как

$cookie = new Zend_Http_Cookie('cookiename',
                        'cookievalue',
                         time() + 7200 //expires after 2 hrs
                       );
echo $cookie->__toString();
echo $cookie->getName(); //cookie name
echo $cookie->getValue(); //cookie value
1 голос
/ 01 марта 2012

Проверка Zend_Http_Cookie

Вы получите ваш файл cookie следующим образом:

echo $email_cookie->getName(); // user_email_id
echo $email_cookie->getValue(); // Your cookie value

echo ($email_cookie->isExpired() ? 'Yes' : 'No'); // Check coookie is expired or not
0 голосов
/ 01 марта 2012

Попробуйте:


$ret_as = COOKIE_STRING_ARRAY;
Zend_Http_CookieJar->getAllCookies($ret_as); 
//Get all cookies from the jar. $ret_as specifies the return type 
//as described above. If not specified, $ret_type defaults to COOKIE_OBJECT. 

Ссылка: Zend Cookies

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...