Exemplo n.º 1
0
 /**
  * Parse the cookie header and set the internal cookies.
  * 
  * @param string $header
  */
 protected function processCookieHeader($header)
 {
     $items = explode(';', $header);
     $cookies = array();
     foreach ($items as $cookieString) {
         $parts = explode('=', $cookieString, 2);
         $cookie = new Customweb_Core_Http_Cookie();
         $cookie->setRawName($parts[0])->setRawValue($parts[1]);
         $cookies[$cookie->getName()] = $cookie->getValue();
     }
     $this->cookies = $cookies;
 }
Exemplo n.º 2
0
 /**
  * Parses the given header value into a set of cookies.
  * 
  * @param string $value
  */
 protected function processCookieHeader($value)
 {
     $pairs = explode(';', $value);
     $expiryDate = null;
     $domain = null;
     $path = null;
     $values = array();
     $httpOnly = false;
     $secure = false;
     foreach ($pairs as $pair) {
         $keyValues = explode('=', trim($pair), 2);
         if (count($keyValues) == 2) {
             switch (strtolower($keyValues[0])) {
                 case Customweb_Core_Http_ICookie::KEY_PATH:
                     $path = urldecode(trim($keyValues[1]));
                     break;
                 case Customweb_Core_Http_ICookie::KEY_DOMAIN:
                     $domain = urldecode(trim($keyValues[1]));
                     break;
                 case Customweb_Core_Http_ICookie::KEY_EXPIRY_DATE:
                     $expiryDate = strtotime(urldecode(trim($keyValues[1])));
                     break;
                 default:
                     $values[trim($keyValues[0])] = trim($keyValues[1]);
             }
         } else {
             if (count($keyValues) == 1) {
                 switch (strtolower($keyValues[0])) {
                     case Customweb_Core_Http_ICookie::KEY_HTTP_ONLY:
                         $httpOnly = true;
                         break;
                     case Customweb_Core_Http_ICookie::KEY_SECURE:
                         $secure = true;
                         break;
                     default:
                         $values[trim($keyValues[0])] = null;
                 }
             }
         }
     }
     $cookies = array();
     foreach ($values as $key => $value) {
         $cookie = new Customweb_Core_Http_Cookie();
         $cookie->setRawName($key)->setRawValue($value)->setDomain($domain)->setPath($path)->setExpiryDate($expiryDate)->setHttpOnly($httpOnly)->setSecure($secure);
         $this->cookies[$cookie->getName()] = $cookie;
     }
 }