$_SESSION komplett ohne Inhalt?

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

  • $_SESSION komplett ohne Inhalt?

    So, jetzt hab ich auch mal wieder ein Problem, diesmal leider Eines, was ich nicht lösen kann -_-

    Also, ich habe eine Session auf der Seite, mit, man könnte sagen, Standart-Funktionsumfang, d.h. die Session wird komplett automatisch verwaltet über PHP, wer Cookies deaktiviert hat, hat generell ein Problem usw.
    So, jetzt kommt es (wie es mir momentan aussieht) nach ungefähr 2 Stunden vor (weiß aber nicht, ob das so richtig ist. IMO kam es auch schonmal schneller/langsamer vor, aber mein Zeitgefühl ist nicht gut ^^"), dass der Session-Cookie noch existiert, jedoch meine beliebteste Ausgabe
    PHP-Code:
    echo '<pre>' print_r($_SESSIONtrue) . '</pre>'
    einfach nichts ausgibt, kein Array() und auch sonst nichts.
    An meinem Code kann es eigentlich nicht liegen, da ich das Array, wenn ich es leere, durch ein leeres Array ersetze und auch wenn ich mir die Skripte anschaue und nach $_SESSION suche, die ich zuletzt auf dem Webspace verwendet hab, kommt nichts, was das Array verändert und auch in der gloabeln User-Class und den restlichen Globalen Skripten, wird $_SESSION nicht so überschrieben....

    Tja, und jetzt könnte man sagen, dass mir jeglicher Ansatz für eine Lösung fehlt und wäre über einen möglichen Gedankengang von jemandem

    Obwohl ein Ansatz fällt mir grade ein:
    Man kann ja die Lebenszeit der Sessions in der ini festlegen. Wenn jetzt die Session entfernt wird...obwohl dann müsste da trotzdem Array() als Ausgabe kommen, oder nicht?
    *seufz*

    Achja, falls es von Interesse ist, so wird die Session gestartet:
    PHP-Code:
    session_start(); 
    und zwar auf jeden Fall, außer die globale php-Datei wird nicht eingebunden, dafür müsste aber das try beim zuweisen von mktime an eine Variable schon fehlschlagen, außerdem würde dann die gesamte Seite nicht ausgegeben, weil das Layout dann nicht geladen wird (zumindest nicht ohne Fehlermeldungen)


    btw. kommt das Problem scheinbar nur auf dem Server, denn wenn die Skripte zuhause über nen ganzen Tag bearbeite, läuft der Browser eigentlich auch die gesamte Zeit durch und da hatte ich das Problem bis jetzt nicht...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

  • #2
    es müsste die ausgabe
    (
    )
    kommen, wenn die session abgelaufen ist. Denn nach session ablauf ist dem interpreter natürlich nicht mehr bekannt dass $_SESSION ein array sein soll.
    hast Du gar keine ausgabe?
    -- bist Du dann sicher dass der print_r befehl ausgeführt/vom script erreicht wird?
    oder hast Du die Ausgabe() dann kann es natüröich sein dass die session den timeout erreicht hat, der wird in der ini datei festgeschrieben. phpinfo() sollte Dir darüber auskunft geben
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      das pre drumherm war da, aber da drin nix...kein Umbruch...nix

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        wird die session überhaupt gestartet?

        PHP-Code:
        session_start();

        print_r($_SESSION); 

        EDIT:

        //php.net
        Wenn Sie die Ausgabe von print_r() zum Weiterverarbeiten abfangen möchten, benutzen Sie dazu den Parameter return. Wenn dieser auf TRUE gesetzt ist, gibt print_r() die Ausgabe in einer Variablen zurück, anstatt sie am Bildschirm auszugeben (was dem Standard entspricht).

        Zuletzt geändert von marc75; 17.01.2005, 11:15.
        mfg
        marc75

        <Platz für anderes>

        Kommentar


        • #5
          Original geschrieben von marc75
          wird die session überhaupt gestartet?
          PHP-Code:
            session_start();

          print_r($_SESSION); 
          jep...


          und jetzt bin ich komplett verwirrt....also, ich hab jetzt mal ein bisschen rumpobiert um rauszufinden, wann es passiert.
          Es passiert scheinbar immer an der gleichen Stelle: Aufrufen des Admin-Gallery-Skriptes zum Anschauen eine Bildes in der Detailansicht....so, soweit so gut, nur bringt mich das auch nicht weiter....

          dann lass ich mir jetzt schon per print_r(get_declared_vars()) oder wie die Funktion auch heißt, alles ausgeben. Und dann komme ich soweit, dass ich sehe dass scheinbar die Seite aufgerufen wird, dann wird die Session usw. alles richtig gemacht, die UserKlasse wird aufgerufen und DANN wird die ID in der Session geändert....leider hab ich keine Ahnung wo, warum und weshalb und woher die ID kommt....momentan ist es meißt eine 8, die reingeschrieben wird, grade hatte ich eine 7 und ich hab keine Ahnung woran es liegt.
          Weiternoch, passiert das nicht an meinem lokalen Rechner, auch wenn ich da verschiedene User nutze und dann das Bild mit einem hoch lade, mit einem anderen schonmal einen Kommentar drunter schreibe und dann mit dem dritten mir das Ding anschaue...egal wie oft ich die Seite aufruf, ich bin und bleibe der Testaccount mit der richtigen ID sowohl in der Klasse als auch in der Session....

          Also ich hab jetzt mal alle Skripte, die in irgendeiner Art und Weise includiert/required/aufgerufen werden bei der Besichtigung des oben genannten Skriptes nach $_SESSION durchsucht. Und in allen Dateien wurde nur $_SESSION['layout'] verändert/benutzt. Einzige Ausnahme bildet da meine User-Klasse (was ja auch klar ist) und auch da wird die Session nur bei einem Logout/login verändert.....seh ich zumindest so. Aber ich hab sie mal angehängt, vielleicht fällt ja jemand anderem was auf ^^"
          Angehängte Dateien

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            hat sich mitlerweile erledigt...weiß zwar nicht, woran es lag, aber das Skript läuft jetzt und ich bleibe, wer ich bin -_-

            Allerdings hab ich den Konstruktor der User-Klasse umgeschrieben, weil er mir so nicht gefiel, vielleicht steckte der Fehler darin *schulter zuck*

            Wenn er wieder kommt komme auch ich wieder

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar


            • #7
              Sry, dass ich diesen uralten Thread ausbuddel XD
              Ich hatte so ein ähnliches Problem später nochmal und es war mir da möglich dieses wesentlich besser zu lokalisieren. Das Problem war register_globals - die Session-Variablen wurden in den lokalen Namespace übertragen, eine Änderung an einer einfachen Variable zog somit auch eine Änderung in der Session nach sich~
              nur falls jemand ein ähnliches Problem mal hat und per Google o. so auf den Thread stößt ... register_globals aus und gut ist ~.~

              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
              Wie man Fragen richtig stellt

              Kommentar


              • #8
                OffTopic:
                Da sieht man mal was du in jungen Jahren noch nicht wusstest ... register_globals ist pfui :P
                Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                Kommentar


                • #9
                  OffTopic:
                  Original geschrieben von tontechniker
                  Da sieht man mal was du in jungen Jahren noch nicht wusstest ... register_globals ist pfui :P
                  Das kann man so pauschal nicht sagen, denn im Gegensatz zu vielen anderen habe ich niemals register_globals verwendet - die Einstellung stand schlichtweg auf ON und kollidierte somit mit einer lokalen Variable, woran ich aber überhaupt nicht dachte, weil die Einstellung damals für mich praktisch nicht existent war ^^,


                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar

                  Lädt...
                  X