Problem getting session through CURL

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

Threaded View
I have a web page that needs to load another web page
through CURL, and then use the content of that transfer
for something else.  I'm setting the PHPSESSID cookie
successfully in the call to curl.  I can print out the
$_COOKIE array from the curl loaded page, and see that
it is being set properly.  The problem I'm having, is
that if I call session_start() in that curl loaded page,
it just hangs, and curl never returns.  If I call session_destroy()
first from the parent script, the curl call returns, but
even though I can see that the PHPSESSID cookie is still
set with the same value as the parent script, and call session_start()
from the curl page, the $_SESSION
is empty.  I tried explicitly setting the sessid with session_id()
but that didn't make any difference.

I've "highjacked" my own session in this way on purpose
to make session data available on a different server,  Now
I'm doing the same thing on the same server, and I get
that hanging problem.  I would have thought that this
would be like loading a frameset; you can have multiple
requests running at the same time under the same session id.

Maybe this has something to do with the fact that the curl
call is actually running in the same process as the parent



Re: Problem getting session through CURL

El 06/04/2011 22:07, Tobiah escribió/wrote:
Quoted text here. Click to load it

Are you by chance running both scripts on the same server? If the first
script is already using the session file, the file will be kept locked
until its released and the second script will wait forever. You need to
call session_write_close() in the first script before you call the
second one.

-- - Álvaro G. Vicario - Burgos, Spain
-- Mi sitio sobre programación web:
-- Mi web de humor satinado:

Re: Problem getting session through CURL

On Thu, 07 Apr 2011 09:19:24 +0200, Álvaro G. Vicario wrote:

Quoted text here. Click to load it

Yeah, I was trying to set a cookie in the curl call so that
I'd have the same session as the parent script (yes, the same server).
Thanks for pointing me to session_write_close().  That is exactly what
I needed.


Site Timeline