Session verliert Daten (erst nach kurzer Zeit)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session verliert Daten (erst nach kurzer Zeit)

    Hallo zusammen,
    ich habe hier gerade ein kleines Problem mit einem Skript. ^^

    Zur Beschreibung:

    Ich übergebe eine neu generierte id aus einem Form per get an die folgende Seite. In dieser Seite schreibe ich mir die get variable in die Session. Fahre ich nun zur darauf folgenden Seite fort funktioniert das auch ohne Probleme...

    Hier aber nun das aber:
    Es sei denn... ich verharre auf der Seite wo ich mir die get Variable in die session schreibe... (>30sek.)... In dem Fall wird die Variable nicht mehr an die folgende Seite übergeben (alle anderen Daten in der Session bleiben erhalten) und das Skript erzeugt einen darauf basierenden (sql) Fehler.


    Code:

    Hier schreibe ich das Datum in die Session:

    PHP-Code:
    if($_GET['frma']>0)
    {
        
    $frma $_GET['frma'];
        
    $_SESSION['frma'] = $frma;
    }

    if (!
    $_SESSION['frma'])
    {
        
    //echo session_id();
        
    xtc_redirect(xtc_href_link(FILENAME_CREATE_FRMA));

    session_start() usw. ist überall gesetzt.

    Es ist also geradezu so als würde die session (oder besser gesagt das datum) in einen timeout laufen und nicht übergeben... kann ja aber nicht sein da die session ja nach wie vor besteht und nur das angehänge datum fehlt.

    Komischerweise tritt der Fehler nur lokal auf... auf einem externen webserver habe ich damit keine Probleme. vll ein fehler in den php einstellungen?

    ich verwende Apache (xammp) und php 5.1.4


    Villeicht hat ja jmd von euch bereits damit Erfahrungen oder hat andere Tipps.

    Vielen Dank im voraus
    Jens

  • #2
    Ich übergebe eine neu generierte id aus einem Form per get an die folgende Seite.
    Und wieso trägst du sie nicht sofort in eine Session Var ein ? Dann musst du sie nicht mehr als Parameter an die URL anhängen.
    In dem Fall wird die Variable nicht mehr an die folgende Seite übergeben (alle anderen Daten in der Session bleiben erhalten)
    Und du bist dir ganz sicher dass du die Session ID jeweils an die nächste Seite übergibst (sei es als URL Parameter oder als Cookie).
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hi, vielen Dank für die rasche Antwort.

      Und wieso trägst du sie nicht sofort in eine Session Var ein ? Dann musst du sie nicht mehr als Parameter an die URL anhängen.
      Ja das ist ein Schönheitsfehler, danke, muss ich mir später noch mal ansehen... Dies hat aber nichts mit dem fehler zu tun...

      Vll war das auch ein wenig missverständlich erklärt...

      Also ich habe sozusagen 3 Schritte über 3 Seiten zu tätigen. Auf der ersten wird der (id)Wert (über get) in die Session geschrieben... wenn ich jetzt aber schnell!!!! ^^ zur nächsten Seite fortfahre schleift er das Datum in der Session mit... verharre ich aber nun auf dieser nächsten Seite und idle ein paar Sekunden rum verliert er wieder dieses eine Datum... fahre ich jedoch direkt fort wird der wert wieder mitgenommen und geht nicht verloren. Selbes Spiel auf der letzten Seite...

      Und auf nem "online" Server läuft das ganze auch ohne Mucken...

      Und du bist dir ganz sicher dass du die Session ID jeweils an die nächste Seite übergibst (sei es als URL Parameter oder als Cookie).
      Die session_id bleibt so oder so erhalten... ich wär ja froh wenn die ganze session weg wär ^^ jedoch ist es nur der angehängte Wert der verloren geht (wenn man z.B. mehr als 30sek auf der Seite bleibt)...

      Es ist mir ein Rätsel

      MfG Jens

      Kommentar


      • #4
        Die session_id bleibt so oder so erhalten...
        Und du bist dir ganz sicher dass es sich immer um die genau gleichen Session IDs handelt ? Der Witz von session_start() ist ja, dass wenn keine Session erkannt wird, eine neue angelegt wird.
        Es ist mir ein Rätsel
        mir irgendwie auch...
        Kann es sein, dass dein lokaler Server die Session ID in Cookies speichert und der Online Server auf Cookies verzichtet ? Hast du mal alle Internetdateien (Cookies, Temp Files) gelöscht ?
        Du könntest mal Testausgaben machen z.B. ein
        PHP-Code:
        var_dump($_SESSION); 
        sobald die Var eingetragen ist. Dann bleibst du 30 Sekunden auf der Seite, änderst ggf den GET Parameter und lädst die Seite neu. Wird dann im var_dump() dieser veränderte GET Wert eingetragen oder steht immer noch der korrekte alte Wert drin ?

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Original geschrieben von atomx
          verharre ich aber nun auf dieser nächsten Seite und idle ein paar Sekunden rum verliert er wieder dieses eine Datum...
          Finden in dieser Zeit irgendwelche anderen Requests an dieses PHP-Script (oder ein anderes, welches auf die Session zugreift) statt? (Access-Log des Webservers mal überpüfen.)

          Finden Änderungen an der Session-Datei statt? (Mal mit einem Editor öffnen, der nicht-lockendes Lesen erlaubt, und bei Änderungen einen Hinweis bringt; unter Windows bspw. UltraEdit.)
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Hi


            Und du bist dir ganz sicher dass es sich immer um die genau gleichen Session IDs handelt ? Der Witz von session_start() ist ja, dass wenn keine Session erkannt wird, eine neue angelegt wird.
            Ja die Session ist immernoch die gleiche...

            Wollte gerade nen var_dump von der session machen... momentan läuft das system aber wieder oO. Also kann ich keinen dump von der "fehlerhaften" session machen...

            falls, wovon ich ausgehe, der fehler nachher wieder auftritt werd ich nochmal den korrekten sowie den fehlerhaften var_dump posten.

            Ich denk jedoch mittlerweile dass es eher am server und seinen einstellungen als am skript liegt... ich vergleich mal die servereinstellungen online und offline.

            Axo noch zu wahsaga:
            Requests gibt es auf die Seite keine weiteren... ich weise darauf auch eigentlich nur paar variablen an die template engine zu... aber da beisst sich auch nix...

            Aber trotz alledem danke für die vielen Tipps.
            Zuletzt geändert von atomx; 14.06.2007, 12:16.

            Kommentar

            Lädt...
            X