Re: Manually setting session ids
- From: gordonb.w2d2s@xxxxxxxxxxx (Gordon Burditt)
- Date: Mon, 29 Sep 2008 14:45:08 -0500
I am writing some server to server software that needs to maintain state.
When I say server to server I mean that the client is not a browser, it
is another PHP server (as if that wasn't obvious).
But for the purpose of this connection, it's another client.
The obvious way to do this is to use the session ID. The problem is, how
to first of all generate a session ID and then send back a session ID to
reload a session.
CURL permits things such as getting the session cookie returned
from a request, saving it, and re-sending it on subsequent requests
in the same session.
The session ID is set by the server acting as a server in this situation.
It is up to the client to get the returned session ID, *NOT CHANGE IT*,
and re-use it when necessary. If you need to save the session cookie
across a PHP page in the client, use a database.
Don't confuse the session ID for server-to-server vs. the session
ID for the PHP page browser-to-server. They are two different
session IDs.
Perhaps my understanding of sessions is too limited, but I can't see the
wood for the trees at the moment. Maybe it's obvious and I can't see it.
This is the server (pseudocode). Forget the transport mechanism, imagine
that any function can be called remotely.
That's a strange assumption.
<?php
session_start();
function GetSessionID()
{
return session_id();
}
function SetSessionID($session_id)
{
session_id($session_id);
}
function SetVar($var, $val)
{
$_SESSION[$var] = $val;
}
function GetVar($var)
{
return $_SESSION[$var];
}
?>
now, on the client side, the idea is to do something like this
$sid = $client->GetSessionId();
$client->SetSessionId($sid);
$client->SetVar('foo', 'bar');
echo $client->GetVar('foo'); //returns 'bar'
The problem seems to be that session_start on the server side is called
at the top of the script, and there is no way to change the session_id
midstream.
Even if I could change the session_id, would I get back the data I had
already set?
Does anyone have any thoughts. I'm going mad.
.
- References:
- Manually setting session ids
- From: Hugh Oxford
- Manually setting session ids
- Prev by Date: Re: SMF PHP error... Am I missing something subtle in the PHP language syntax?
- Next by Date: Re: Can't addFile() in SimpleTest Test Suite
- Previous by thread: Re: Manually setting session ids
- Next by thread: Re: Manually setting session ids
- Index(es):
Relevant Pages
|