phpbar.de logo

Mailinglisten-Archive

[php] bug ?!?

[php] bug ?!?

mlerch php_(at)_phpcenter.de
Fri, 11 May 2001 15:04:04 +0200


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