PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php 4.3.0 keine session



joey.brunner
09-01-2003, 17:03
hi,

ich hab mir nen apachen mit 4.3.0 gebaut und jetzt funktioniert meine session nciht mehr, er generiert zwar eine sessionid, aber alle sessionvariablen sind nicht gesetzt, hat da von euch einer eine idee, an was das liegen koennte?

joey

jwebworks
09-01-2003, 17:05
Hast du "register_globals" angeschalten?

die variablen müssten in dem array stehen: $_SESSION

cu, stop.h

joey.brunner
09-01-2003, 17:06
wie gesagt, die php.ini ist die meiner alten php-version. dort sind die globals aktiviert.... und die session haben funktioniert... normalen variablen werden auch global uebergeben, nur die sessionvariablen nicht

joey

jwebworks
09-01-2003, 17:11
Sind sie in dem Array drin, oder da auch nicht?

joey.brunner
09-01-2003, 17:14
nein, ich kann sie auch nciht encodieren

joey

Gaert
09-01-2003, 17:21
Kommt die Session Variable mit rüber?
Sprich ist $PHPSESSID mit der Session ID gefüllt, bevor du session_start() aufrufst?
Werden Session Variablen in überhaupt /tmp angelegt?
Wenn ja stehen die Variablen die du registrierst da drin?

Kleiner Tipp... stell bei solchen Tests immer die Cookies im Browser aus, sonst denkst du´s funktioniert, aber letztendlich hat der Cookie dich immer bewahrt, dass die Session flöten geht!

joey.brunner
09-01-2003, 17:24
wie gesagt, es wird schon eine session registriert, die variablen stehen auch in /var/www/html/sessions drin (hab das abgeaendert, standard ist tmp), aber sie haben keinen wert

joey

Gaert
09-01-2003, 17:25
Hmm.. aber in der Datei Stehen sie mit den Werten drin...

Wie gesagt, kommt die $PHPSESSID mit rüber?
mach mal ein echo $PHPSESSID direkt vor session_start()

Gaert
09-01-2003, 17:28
Ööhm... kleine Zwischenfrage...
Das Sieht mir sehr nach Mandrake aus...
/var/www/html/sessions

Heisst das die Session Variablen werden innerhalb des Webserver Document Roots reingeschrieben... wenn ja dann ist das extrem BÖSE!!!

joey.brunner
09-01-2003, 17:28
ich starte die session ueber register... vorher hat sie keinen wert (die PHPSESSID)

joey

Gaert
09-01-2003, 17:31
Dann liegt es daran!
startest du die Session in einer Funktion?
Wenn ja hol Sie (die $PHPSESSID) mit global vorher rein!
Schau auch mal nach, ob sie in $_REQUEST['PHPSESSID'] drinsteht...
Und schau in dem Skript nach, von dem du die Seite aufrufst, ob da die ?PHPSESSID=b131kalda... an die <a hrefs > angehängt wird (müsste eigentlich wenn du die cookies im Browser deaktiviert hast)!

joey.brunner
09-01-2003, 17:38
die sessionid wird ja uebergeben nur die variablen nicht... oder ist das ne aenderung von der letzten stable auf die aktuelle naja ich versuchs mal... aber wenn ich die session nicht starten wuerde, wuerden sie ja auch nicht auf der platte als sessionvars liegen oder ?

joey

joey.brunner
09-01-2003, 17:40
ach ja, das system ist nicht mandrake sonder lfs ;) das wollen wir mal klarstellen ;)

joey

Gaert
09-01-2003, 18:08
aber wenn ich die session nicht starten wuerde, wuerden sie ja auch nicht auf der platte als sessionvars liegen oder ?


Falsch!
Die Session Datei wird beim ersten Aufruf von session_start() (oder session_register() is ja wurscht) erzeugt. Dann MUSS die Session Variable aber an das nächste Skript weitergegeben werden (ob nun über cookie oder über URL) und MUSS auch verfügbar sein (d.h. $PHPSESSID (falls deine Session Variable so heisst) MUSS gefüllt sein wenn du die Session startest!
In deinem Fall ist das nicht so, deshalb kann die Session auch nicht gestartet werden... in deinem Fall legt er auf der neuen Seite beim zweiten session_start() einfach ne frische Session Datei an, weil er von der alten nix weis. Kannst du einfach mal überprüfen, indem du mal alle Session Dateien löschst und dann schaust wieviele Session Dateien er wieder anlegt!



ach ja, das system ist nicht mandrake sonder lfs das wollen wir mal klarstellen

Alles klar... nichtsdestotrotz...
Liege ich richtig, dass das Root Verzeichnis des Apache
/var/www/html/
ist?
Falls dem so ist, halte ich es für absolut keine gute Idee die Session Variablen in /var/www/html/sessions zu speichern!
RIESEN Sicherheitsloch!!!

Gaert
09-01-2003, 18:11
Hab gerade Netzmeister mit meinen Posts überholt!

joey.brunner
09-01-2003, 18:15
nein der docroot liegt auf einer extra partiotion namens /apache

hmm und was mach ich jetzt und warum geht es bloss mit 4.3.0 nicht, habe gerade php neu geabut mit der alten geht es ...

joey

Gaert
09-01-2003, 18:44
Na dann is ja alles gut...

Guck doch mal in den Release Notes, ob da was drinsteht!

Ich bin noch nicht auf 4.3.0 umgestiegen, kann also auch nix rumprobieren.

joey.brunner
09-01-2003, 18:47
mit den release notes und dem changelog bin ich nicht recht viel weitergekommen... naja, egal

wird schon so ein dummer fehler sein...

joey

Gaert
09-01-2003, 18:51
Bei Sessions sind es immer dumme Fehler... was ich mich damit schon rumgeärgert hab :mad:

Wenn du drauf gekommen bist Poste hier bitte die Auflösung!

Oder vielleicht fällt jemand anderem noch was ein???

joey.brunner
09-01-2003, 19:09
mit sicherheit werde ich die loesung posten

joey

mehlvogel
09-01-2003, 19:11
Vielleicht kannst du ja nen Sniplet posten wo das Problem genau auftritt - das ist für mich meistens einfacher wenn ich den Code sehe...

joey.brunner
09-01-2003, 19:12
tja, da werden wir probleme bekommen, der code ist realtiv komplex, um die 10.000 zeilen...

joey

mehlvogel
09-01-2003, 19:20
achso wenig ;)

Brauchst das wirklich alles üfr die Session verwaltung?

joey.brunner
09-01-2003, 19:57
ja, das ist eine einzig grosse session ;) nein, es ist in funktionen und in viele tpl´s aufgeteilt, die fast alle sessionvars haben ...

joey

Xerxes
09-01-2003, 20:24
Original geschrieben von joey.brunner
hi,

ich hab mir nen apachen mit 4.3.0 gebaut und jetzt funktioniert meine session nciht mehr, er generiert zwar eine sessionid, aber alle sessionvariablen sind nicht gesetzt, hat da von euch einer eine idee, an was das liegen koennte?

joey
ich hab jetzt das ganze topic nicht gelesen, also sorry, falls meine antwort schon kam...hatte nur grad eine kleine idee für dein prob. ;)
nimm mal eine php.ini von php4.3.0
Die Entwickler von PHP haben da ne ganze Menge dran geändert, deshalb wird er deine alte wohl nicht richtig verarbeiten können.

joey.brunner
09-01-2003, 20:32
hab ich auch schon versucht ;( geht leider auch nciht