Ich hab seid geraumer Zeit auf ServerA meinen eigenen SessionHandler (my_query ist ne eigene Funktion, die einfach das query ausführt, DB-Connect existiert zum jeweiligen Zeitpunkt):
Code: Select all
function open($save_path,$session_name) {
return(true);
}
function close() {
return(true); }
function read($id) {
$result=my_query("select DataValue from sessions where sessionid = '$id'");
if (count($result[0])>0)
return ($result["DataValue"]);
return("");
}
function write($id,$sess_xxdata) {
global $URL;
$query = "insert into sessions set sessionID = '$id', LastUpdated = NOW(), DataValue = '$sess_xxdata' ";
my_query($query);
return(error_log("sess_write('".$id."','".$sess_xxdata."')",0));
}
function destroy($id) {
my_query("DELETE FROM sessions WHERE sessionID = '$id'");
return(error_log("sess_destroy('".$id."')",0)); }
function gc($maxlifetime) {
return(error_log("sess_gc('".$maxlifetime."')",0)); }
session_set_save_handler ("open", "close", "read", "write", "destroy","gc");Ich versuche mich auf einer (momentan nicht öffentlichen) Seite einzuloggen. Beim einloggen werden die Userdaten geprüft, bei Erfolg die Session gestartet und $_SESSION mit Inhalten gefüllt. Nun sollt ja das write aufgerufen werden (was ja wie gesagt bis heute wunderbar geklappt hatte)
Das write wird aber NICHT aufgerufen (seh ich hier ja am error_log). Ich bin durch probieren drauf gestossen, dass wenn ich in die read nur ein return(""); mache, dass das write auf einmal aufgerufen wird. Sobald ich das SELECT wieder reinnehme, damit die Daten wieder aus der DB geladen werden, funktioniert das write nicht mehr.
Bin kurz vorm verzweifeln bzw. bins eigentlich schon :twisted:
Weiss jemand rat?
Achja, ServerB wurde aufgrund dessen komplett neu installiert (ist ein Strato High End), doch ohne Ã?nderung.
Apache ist 2.0.48 mit php 4.3.3
Thx for Help