SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 14.07.2007, 12:35:22
Isocrateus Isocrateus ist offline
Anfänger
 
Registriert seit: Feb 2005
Beiträge: 71
$_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:
$_SESSION delete_form_data($_SESSION); 
__________________
Gruß von der Nordsee

Geändert von Isocrateus (14.07.2007 um 12:39:20 Uhr)
Mit Zitat antworten
  #2  
Alt 14.07.2007, 12:49:57
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: $_SESSION macht Ärger im Firefox

Mit diesem Code-Schnippsel kann Dir hier auch keiner weiter helfen.
Mit Zitat antworten
  #3  
Alt 14.07.2007, 13:11:30
Isocrateus Isocrateus ist offline
Anfänger
 
Registriert seit: Feb 2005
Beiträge: 71
AW: $_SESSION macht Ärger im Firefox

Na gut, das Skript sieht wie folgt aus:
PHP-Code:
function content(){
            
            
$this_form_id 14787;

                        
            
$step $_POST["step"];

                If (empty(
$step)||$step==1
                 {                        
                    
$errors check_form($_POST,$this_form_id);
                    
$form create_form($this_form_id,1,$errors);
                    
$content $form;
                    
$_SESSION delete_form_data($_SESSION);
                 }
                        
            

                If (
$step==2
                 {
                    
$errors check_form($_POST,$this_form_id);
                    
$form create_form($this_form_id,2,$errors);    

                    
$content $form;            
                 }

            

                 If (
$step==3
                 {                    
                    
$errors check_form($_POST,$this_form_id);
                    
$form create_form($this_form_id,3,$errors);
                                    
                    
$content $form;

                 }

            

                 If (
$step==4
                 {    
                    
                 }

        return 
$content;
     } 
Wobei wiederum checkform() die per post übersandten Daten in $_SESSION registriert und create_form einfac hnur dynamisch die Formularseiten erzeugt. delete_form_data($_SESSION) sieht so aus:
PHP-Code:
function delete_form_data($session){

    foreach (
$session as $var => $value){
        unset(
$session[$var]);
    }

    return 
$session;


Im Übrigen funktionierts prima in IE oder Opera...
__________________
Gruß von der Nordsee
Mit Zitat antworten
  #4  
Alt 14.07.2007, 17:02:44
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: $_SESSION macht Ärger im Firefox

Zitat:
$_SESSION = delete_form_data($_SESSION);
Was soll der Unfug?
Das tuts auch:
PHP-Code:
$_SESSION = array(); 
Mit Zitat antworten
  #5  
Alt 14.07.2007, 17:16:12
Isocrateus Isocrateus ist offline
Anfänger
 
Registriert seit: Feb 2005
Beiträge: 71
AW: $_SESSION macht Ärger im Firefox

Okay, aber selbst wenn ich die Fkt delete usw. durch
PHP-Code:
$_SESSION = array() 
im obigen Skript ersetze, bleibt das Problem. Lösche ich allerdings auch diese Zeile heraus, funktioniert alles wie gewollt... Mit der Ausnahme, dass alle Daten aus dem Formular weiterhin gespeichert bleiben und angezeigt werden, was sie beim erneuten Aufruf natürlich nicht sollten. Würde mich sehr freuen, wenn jemandem dazu noch etwas einfällt... :-)
__________________
Gruß von der Nordsee

Geändert von Isocrateus (14.07.2007 um 17:17:34 Uhr)
Mit Zitat antworten
  #6  
Alt 14.07.2007, 19:35:26
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: $_SESSION macht Ärger im Firefox

Zitat:
Zitat von Isocrateus Beitrag anzeigen
Okay, aber selbst wenn ich die Fkt delete usw. durch
PHP-Code:
$_SESSION = array() 
im obigen Skript ersetze, bleibt das Problem. Lösche ich allerdings auch diese Zeile heraus, funktioniert alles wie gewollt... Mit der Ausnahme, dass alle Daten aus dem Formular weiterhin gespeichert bleiben und angezeigt werden, was sie beim erneuten Aufruf natürlich nicht sollten.
Dann wird diese Zeile aus welchen Gründen auch immer bei jedem Seitenaufruf ausgeführt. Woran das liegt, können wir dir aber nicht sagen, solange du uns vorenthälst, wie die Zeilen um den Funktionsaufruf herum aussehen.
Mit Zitat antworten
  #7  
Alt 14.07.2007, 20:25:22
Isocrateus Isocrateus ist offline
Anfänger
 
Registriert seit: Feb 2005
Beiträge: 71
AW: $_SESSION macht Ärger im Firefox

Also check_from sieht so aus:
PHP-Code:
function check_form($post_vars,$form_id){
@
session_start();

    foreach (
$post_vars as $var => $value){
        if (
$var!="step"$_SESSION[$var] = $value;
    }

Und die Funktion content() wird in der indexdatei einfach aufgerufen per echo in einem Template ausgegeben. Da kann der Fehler nicht liegen. Im Prinzip wird sie irgendwie aufgerufen, aber kein anderes Skript auf dem Server ruft sonst irgendwo diese Funktion auf. Im Interexplorer funktionierts ja auch, der Fehler muss also irgendwo in $_SESSION selbst liegen..., oder?
__________________
Gruß von der Nordsee
Mit Zitat antworten
  #8  
Alt 14.07.2007, 20:42:06
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: $_SESSION macht Ärger im Firefox

Zitat:
Zitat von Isocrateus Beitrag anzeigen
Okay, aber selbst wenn ich die Fkt delete usw. durch
PHP-Code:
$_SESSION = array() 
im obigen Skript ersetze, bleibt das Problem.
1. mehr als die paar Schnipsel kenne ich ja nicht
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:
Würde mich sehr freuen, wenn jemandem dazu noch etwas einfällt... :-)
Mehr Script, mehr Config.

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.

Geändert von meikel (†) (14.07.2007 um 20:46:11 Uhr)
Mit Zitat antworten
  #9  
Alt 17.07.2007, 22:31:12
Isocrateus Isocrateus ist offline
Anfänger
 
Registriert seit: Feb 2005
Beiträge: 71
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*)
__________________
Gruß von der Nordsee

Geändert von Isocrateus (17.07.2007 um 22:32:26 Uhr)
Mit Zitat antworten
  #10  
Alt 17.07.2007, 23:06:25
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: $_SESSION macht Ärger im Firefox

Zitat:
Zitat von Isocrateus Beitrag anzeigen
Habe in Erfahrung gebracht, dass ich PHP 4.4.4 mit - da liegt wohl die Schwierigkeit - register_globals = on laufen habe...
Genauso isses. PHP importiert während session_start() die Variablen aus dem Session File.
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:
Die Session-Config

session.bug_compat_42 On On
session.bug_compat_warn On On
Beide Flags müssen ebfalls ausgeknipst werden, wenn register_globals = Off ist.

Zitat:
session.use_trans_sid On On
Damit kann es ggf. auch Probleme geben, falls Du JavaScript verwendest. PHP versucht dann, bevor der Apache den Kram abschicken darf, an alle Links die Session Daten dranzukleben, wenn der Client keinen Keks haben wollte. Die Frage ist nur, wie intelligent sich PHP dabei anstellt, alle richtigen Stellen zu finden.
Ich bin mißtrauisch und erledige das lieber im PHP-Script unter Verwendung der PHP-Konstante SID.

Zitat:
Dass check_form noch sehr unsicher ist, dachte ich mir allein aufgrund der nicht verhandenen Eingabeüberprüfung schon ;-)
Naja, die Funktion nimmt unbesehen das, was sie kriegt.
Dazu noch register_globals = On - das ist so wie ein "Freilos für Cracker". <ggg>

Geändert von meikel (†) (17.07.2007 um 23:12:12 Uhr)
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Firefox Cache Problem - Radio Buttons marc26 HTML, CSS und JavaScript Help! 1 08.12.2006 16:45:41
Popups IE und Firefox Generator HTML, CSS und JavaScript Help! 4 18.10.2006 09:08:30
Firefox 1.5 windows ME: neues Fenster kann man nicht öffnen saju Off Topic Area 2 31.01.2006 15:41:03
download readfile firefox geist PHP für Fortgeschrittene und Experten 0 20.01.2006 15:18:46
IE und Firefox streikten beim JavaScripten Soeren HTML, CSS und JavaScript Help! 1 03.01.2005 11:56:13


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:16:58 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt