Mailinglisten-Archive |
Hi ! Ich habe folgendes Problem: Ich benutze das php4 Session Management mit selbstdefinierten read/write Funktionen um Sessions in einer mySQL-Datenbank zu speichern. Session Variablen werden manchmal nicht korrekt in die Datenbank geschrieben, obwohl sie korrekt gelesen und auf keiner der Seiten verändert werden. Ich habe zur Überprüfung die Werte mitgeloggt, die die read-Funktion zurückgibt sowie die Werte, die an die write-Funktion übergeben werden. So sieht die korrekte Ausgabe aus: (w) 6ab3322c74ba731179b210dc4401a928: (r) 6ab3322c74ba731179b210dc4401a928: (w) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (r) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (w) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (r) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (w) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (r) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; (w) 6ab3322c74ba731179b210dc4401a928: auth_name|s:4:"test";auth_flags|s:1:"1"; Das ist die (manchmal auftauchende) fehlerhafte Ausgabe: (w) 3e8eab99d3e33bfe8393a0c4d0b8e987: (r) 3e8eab99d3e33bfe8393a0c4d0b8e987: (w) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|s:4:"test";auth_flags|s:1:"1"; (r) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|s:4:"test";auth_flags|s:1:"1"; (w) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|s:4:"test";auth_flags|s:1:"1"; (r) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|s:4:"test";auth_flags|s:1:"1"; (w) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|N;!:"test";auth_flags| (r) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|N;!:"test";auth_flags| (w) 3e8eab99d3e33bfe8393a0c4d0b8e987: auth_name|N;!:"test";auth_flags| Dies sind die Ausgaben eines einfachen Framesets mit 3 Frames. Die ersten 3 Zeilen kommen von der Index-Seite, auf der auch die beiden Session Variablen registriert werden, die folgenden 6 Zeilen von den 3 Frames. Manchmal erhalte ich die korrekte Ausgabe, manchmal die fehlerhafte. Die beiden benutzten Variablen werden in keinem der 3 Frames verändert. In den read/write Funktionen sollte eigentlich kein Fehler sein, die read-Funktion funktioniert ja wie man sieht. Und die write-Funktion schreibt bloss den von php übergebenen Wert in die Logdatei und in die Datenbank, und dieser übergebene Wert ist !manchmal! falsch. Wenn jemand eine Idee hat, oder denselben Fehler beobachtet hat, helft mir bitte. Ich weiss nicht mehr weiter zumal der Fehler nicht jedes Mal auftritt sondern nur vereinzelt. Konfiguration: Linux: Linux 2.2.16 (Suse Distribution) Apache: Apache/1.3.19 (Unix) PHP/4.0.4pl1 mod_ssl/2.8.1 OpenSSL/0.9.6 MYSQL: 3.22.32 PHP: PHP4.04pl1 with Zend Optimizer Relevante settings aus der php.ini: variables_order = "EGPCS" register_globals = On register_argc_argv = On post_max_size = 8M gpc_order = "GPC" ; Magic quotes magic_quotes_gpc = On magic_quotes_runtime = Off magic_quotes_sybase = Off session.save_handler = user session.save_path = /tmp session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.serialize_handler = php session.gc_probability = 1 session.gc_maxlifetime = 1440 session.referer_check = session.entropy_length = 0 session.entropy_file = ; session.entropy_length = 16 ; session.entropy_file = /dev/urandom session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 1 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" Benutzte .htaccess files ändern lediglich den include path und das auto prepend file. Gruss M.
php::bar PHP Wiki - Listenarchive