carsten schlichting: session_id($_GET[session_name()])

Beitrag lesen

Hi danke schon einmal

hier der ganze code_Zusammenhang

es handelt sich um eine Session-class, die externe scripte für den oscommerce_Shop ermöglichen soll.

funktioniert super mit cookies, aber nicht so richtig, wenn cookis disabled sind.

versuch ich gerade herauszufinden, woran das liegen könnte?

---------------------------------------------

//// Initialize the class
$SessClass = new Session();

---->kapier ich

//// Set the session handlers
// NOTE: the class is passed by reference!
session_set_save_handler (array(&$SessClass, '_open'),
                          array(&$SessClass, '_close'),
                          array(&$SessClass, '_read'),
                          array(&$SessClass, '_write'),
                          array(&$SessClass, '_destroy'),
                          array(&$SessClass, '_gc'));

--->kapier ich: mit Hilfe der Klasse und session_set_save_handler wird die session in der MySQL_datenbank abgelegt und bearbeitet.

//// Set the session name
session_name('osCsid');

-->kapier ich

//// Simple logic to see if the osCsid is passed via GET or POST
if (isset($_POST[session_name()])) {
 session_id($_POST[session_name()]);
} elseif ( isset($_GET[session_name()]) ) {
 session_id($_GET[session_name()]);
}

--> kapier ich nicht richtig:  wird hier eventuell die session_id überschrieben, wenn eine session_Id im Zusammenhang mit dem Session_Namen=osCsid vorhanden ist. und zwar mit dieser übermittelten session_id.
was passiert, wenn ocsid = übermittelte session_id
nicht als Session abgespeicherrt ist.--> session_start() öffnet eine neue Session.--stimmt das?

//// If the visitor has cookies disabled and the osCsid is set via GET or POST
// start the output buffer and rewrite the page links / forms
if ( !isset($_COOKIE[session_name()]) && ( isset($_GET[session_name()]) || isset($_POST[session_name()]) ) ){
 output_add_rewrite_var(session_name(), session_id());
}

--->kapier ich ???  : wenn eine session per get oder post  und nicht über cookis übermittelt wird, wird in php die Funktion eingschaltet, die die session_id an die hrefs anhängt. bei js script - aber - muß die session_id "manuell" angefügt werden

//// Finally, start the session
session_start();

--> hier wird dann auch überprüft, ob die seesion_id vorhanden ist?--falss nicht , wird eine neue session ausgegeben.-->kapier ich also ;-)

aber woran könnte es noch liegen, dass wenn cookies disabled sind die SESSION nicht richtig funktionieren..., obwohl ich in den js_funktionen den session_name =session_id angehängt habe.

probier es jetzt nocheinmal mit der konstante sid.

und dann mal sehen.

grüße carsten