$_SESSION macht Ärger im Firefox
Hallo!
Ich habe folgendes Problem: (Ausschl) in Firefox wird der komplette Array $_SESSION bei der Navigation durch ein Formular gelöscht. Hierbei kann man von drei Formularseiten über einen (weiteren Formular-) Button jeweils eine Seite zurück gehen. Die Formularfelder sollten, sofern Werte gespeichert sind) die Daten aus $_SESSION direkt wieder einfügen. gelangt man wieder auf die erste Seite des Formulars wird mittels Funktion $_SESSION nach dem Einfügen der Daten geleert. Diese Fkt - nenne wir sie mal X - wird nur auf der ersten Seite aufgerufen... Das habe ich mehrfach schon kontrolliert. Aber sobald sie irgendwo in meinem Skript auftaucht, wird $_SESSION nach jedem senden mittels $_POST gelöscht... Was ist da los? Ich versteh die session nicht mehr :-( So wird X aufgerufen: PHP-Code:
|
AW: $_SESSION macht Ärger im Firefox
Mit diesem Code-Schnippsel kann Dir hier auch keiner weiter helfen.
|
AW: $_SESSION macht Ärger im Firefox
Na gut, das Skript sieht wie folgt aus:
PHP-Code:
PHP-Code:
|
AW: $_SESSION macht Ärger im Firefox
Zitat:
Das tuts auch: PHP-Code:
|
AW: $_SESSION macht Ärger im Firefox
Okay, aber selbst wenn ich die Fkt delete usw. durch
PHP-Code:
|
AW: $_SESSION macht Ärger im Firefox
Zitat:
|
AW: $_SESSION macht Ärger im Firefox
Also check_from sieht so aus:
PHP-Code:
|
AW: $_SESSION macht Ärger im Firefox
Zitat:
2. ebenfalls ist Deine PHP Config komplett unbekannt 3. die Ausrede, die Fehlfunktion wäre browserabhängig, kannste knicken: 27.6. Mein Script funktioniert nicht mit Browser XY! http://www.php-faq.de/q/q-html-validieren.html Zitat:
php version:___ register_globals:___ + Deine komplette Session-Config Welchen DOCTYPE verwendest Du? Gibt es ein Onlinebeispiel? Zusatz: Deine function check_form() ist gefährlich. Besonders dann, wenn register_globals = On sein sollte. |
AW: $_SESSION macht Ärger im Firefox
Abend!
Habe in Erfahrung gebracht, dass ich PHP 4.4.4 mit - da liegt wohl die Schwierigkeit - register_globals = on laufen habe... Die Session-Config (wenns denn folgendes sein sollte...?) sieht folgender maßen aus: Session Support enabled Registered save handlers files user Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 1 1 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid On On Ein Online-Beispiel kann ich leider nicht geben. Aber mir ist schleierhaft, weshalb grundsätzlich sobald session_destroy oder $_SESSION = array() irgendwo im Skript (unabhängig von Fkt oder Schleife) auftaucht $_SESSION gelöscht bzw überschrieben wird. Dass check_form noch sehr unsicher ist, dachte ich mir allein aufgrund der nicht verhandenen Eingabeüberprüfung schon ;-) Doctype ist außerdem xhtml (Mekre gerade, dass ich mich garnicht auskenne - *sry*) |
AW: $_SESSION macht Ärger im Firefox
Zitat:
Steht register_globals auf Off, ist alles in Butter. Steht das Flag auf On, importiert PHP zusätzlich noch den Inhalt von $_SESSION in den globalen Namensraum. Und genau da fangen die Probleme an, weil ja dort auch die Formularvariablen aufschlagen. Und nicht nur das: alle Variablen, die PHP exportiert hat - $_SESSION['var'] -> $var, sichert PHP dann am Scriptende auch wieder. Leider kenne ich hier die Reihenfolge nicht, ob PHP dabei die Indizes in $_SESSION mit den gleichnamigen Variablen überschreibt - oder umgekehrt. Fazit: schalte das Flag aus, wenn Du darfst, oder nerve die Hotline so lange, bis die es gemacht haben. Sonst hat Du nämlich sehr schlechte Karten! Zitat:
Zitat:
Ich bin mißtrauisch und erledige das lieber im PHP-Script unter Verwendung der PHP-Konstante SID. Zitat:
Dazu noch register_globals = On - das ist so wie ein "Freilos für Cracker". <ggg> |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:57:12 Uhr. |
Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.