Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Problem mit Session Vars [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Problem mit Session Vars


 
kakktus
13-02-2006, 13:43 
 
Hallo,

ich habe folgendes Problem:
Habe eine Seite in der ich mittels eines Java-Applets Dateien auf meinen Server Laden kann. Ich habe alle Relevanten Daten (Username etc.) in einer Session gespeichert. Wenn der Upload jetzt aber länger dauert ist meine Session gelöscht und somit auch meine Session Inhalte.

Mit session_set_cookie_params ('10800');
und/oder
ini_set('session.gc_maxlifetime', '10800');

funktioniert es auch nicht. Mein Session Cookie hat zwar ne Gültigkeit von drei Stunden aber irgendwie scheint die Session ID auf dem Server gelöscht zu sein.

Was kann ich da machen oder habe ich was übersehen??

Danke vorab.

 
onemorenerd
13-02-2006, 13:50 
 
Die Session-ID wird auf dem Server gar nicht gespeichert. Der User überträgt einfach eine und der Server versucht das dazugehörige Sessionfile zu öffnen.
Webserver versucht also einfach /tmp/sess_<SESSIONID> (nur ein Beispiel) zu öffnen. Gibt es diese Datei nicht, existiert die Session nicht. Entweder hat sie das nie, oder sie war zu alt und das File fiel dem GC zum Opfer.

Prüfe, ob das Sessionfile bei dir verschwindet. Ich denke nicht. Das Applet wird wohl einfach die Session-ID nicht richtig übertragen.

 
kakktus
13-02-2006, 14:17 
 
Hallo,

Naja wenn der Upload schnell genug geht funktioniert alles einwandfrei. Von daher kann es ja nicht am Übertragen der Session ID liegen. Ich denke es liegt eher an der Zeitüberschreitung. Außerdem wird die Session ID doch im Sessioncookie gespeichert. Was kann ich denn machen um die Zeitüberschreitung zu umgehen bzw. was kann ich machen um den Sessioninhalt nicht zu verlieren??

 
onemorenerd
13-02-2006, 14:31 
 
Wenn es keine sensiblen Daten sind, kannst du sie einfach als Cookie komplett beim User speichern.

Ansonsten kannst du den Sessioninhalt irgendwo (z.B. in einer DB) dauerhafter speichern. Allerdings wird es dir nach einem längeren Upload schwer fallen, diesem User wieder "seine" Sessiondaten zuzuordnen, wenn er die alte SID nicht mehr mitschickt.

Kannst du den Session Timeout nicht einfach hoch genug drehen?

 
kakktus
13-02-2006, 17:31 
 
Mein Sessioin Cookie hat ja eine Lebensdauer von 3stunden. Damit müsste ich doch wieder an die Daten kommen wenn ich sie vorher in einer db speichere. Oder??

 
onemorenerd
13-02-2006, 21:32 
 
Ich meinte nicht das Verfallsdatum des Cookies sondern session.gc_maxlifetime (http://de2.php.net/manual/de/ref.session.php#ini.session.gc-maxlifetime).
Lies dir aber die Anmerkungen dort genau durch.

 
kakktus
13-02-2006, 21:53 
 
Aber sertze ich diese nicht mit ini_set('session.gc_maxlifetime', '10800'); auch auf drei Stunden hoch??

 
onemorenerd
13-02-2006, 22:21 
 
Hast du die Anmerkungen nicht gelesen oder nicht verstanden?

 
kakktus
13-02-2006, 22:50 
 
Also wedu mich so fragst als hätte ich was verbrochen, habe ich es wohl nicht wirklich verstanden.

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:30 Uhr.