[PHP 5.2.8] Retrieve cookies from remote host and pass them back to client.

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Threaded View

I have a PHP 5.2.8 web application that needs to retrieve a resource
from a remote URL. However, the remote host also sends a cookie back
(in a Set-Cookie header), and I need to grab that cookie and pass it
on to the client (so that it's stored by the client browser). I do
know the name of the cookie beforehand.

What is the best way to do this? Passing a cookie from PHP back to the
client is easy, it's grabbing the cookie from the remote URL that is
the problem.

There is no support for cookies in file_get_contents(), so that won't
work. I can use curl to retrieve the remote URL with headers, but curl
does not seem to provide an easy way to get the value of the cookie
beyond retrieving the HTTP headers and parsing them manually. I could
use and parse curl's cookie file (another hack) but the cookie
contains a value that is randomly generated, and the cookies in curl's
cookie jar are global to all PHP requests (so if multiple users made
the same request, their cookie value could be shared).

How can I retrieve the contents of a remote resource as well as the
value of a cookie sent with that resource?


P.S.: Also, as a minor side question; how, if at all, would the method
for doing this be different in PHP 4.4.9?

Re: Retrieve cookies from remote host and pass them back to client.

Quoted text here. Click to load it

I was able to make this work with PECL's HttpRequest, which provides
some easy ways to access cookies received from remote requests. The
PHP application retrieves the resource with HttpRequest, gets the
cookie's value and uses setcookie() to forward it to the client. Then
when making other requests where the cookie is needed, the value from
the client is retrieved through $_COOKIE and sent with the request as
a cookie.


Site Timeline