Esempio n. 1
0
 /**
  * Add a cookie to the jar. Cookie should be passed either as a Zend_Http_Cookie object
  * or as a string - in which case an object is created from the string.
  *
  * @param Zend_Http_Cookie|string $cookie
  * @param Zend_Uri_Http|string    $ref_uri Optional reference URI (for domain, path, secure)
  */
 public function addCookie($cookie, $ref_uri = null)
 {
     if (is_string($cookie)) {
         $cookie = Sabel_Http_Cookie::fromString($cookie, $ref_uri);
     }
     if ($cookie instanceof Sabel_Http_Cookie) {
         $domain = $cookie->getDomain();
         $path = $cookie->getPath();
         if (!isset($this->cookies[$domain])) {
             $this->cookies[$domain] = array();
         }
         if (!isset($this->cookies[$domain][$path])) {
             $this->cookies[$domain][$path] = array();
         }
         $this->cookies[$domain][$path][$cookie->getName()] = $cookie;
         $this->_rawCookies[] = $cookie;
     } else {
         $message = __METHOD__ . "() Supplient argument is not a valid cookie string or object";
         throw new Sabel_Exception_Runtime($message);
     }
 }
Esempio n. 2
0
 /**
  * Add a cookie to the request. If the client has no Cookie Jar, the cookies
  * will be added directly to the headers array as "Cookie" headers.
  *
  * @param Zend_Http_Cookie|string $cookie
  * @param string|null $value If "cookie" is a string, this is the cookie value.
  * @return Zend_Http_Client
  * @throws Zend_Http_Client_Exception
  */
 public function setCookie($cookie, $value = null)
 {
     if (is_array($cookie)) {
         foreach ($cookie as $c => $v) {
             if (is_string($c)) {
                 $this->setCookie($c, $v);
             } else {
                 $this->setCookie($v);
             }
         }
         return $this;
     }
     if ($value !== null) {
         $value = urlencode($value);
     }
     if (isset($this->cookiejar)) {
         if ($cookie instanceof Sabel_Http_Cookie) {
             $this->cookiejar->addCookie($cookie);
         } elseif (is_string($cookie) && $value !== null) {
             $cookie = Sabel_Http_Cookie::fromString("{$cookie}={$value}", $this->uri);
             $this->cookiejar->addCookie($cookie);
         }
     } else {
         if ($cookie instanceof Sabel_Http_Cookie) {
             $name = $cookie->getName();
             $value = $cookie->getValue();
             $cookie = $name;
         }
         if (preg_match("/[=,; \t\r\n\v\f]/", $cookie)) {
             $message = __METHOD__ . "() Cookie name cannot contain these characters: =,; \t\r\n\v\f ({$cookie})";
             throw new Sabel_Exception_Runtime($message);
         }
         $value = addslashes($value);
         if (!isset($this->headers["cookie"])) {
             $this->headers["cookie"] = array("Cookie", "");
         }
         $this->headers["cookie"][1] .= $cookie . "=" . $value . "; ";
     }
     return $this;
 }