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