Session / Cookie Problem ich werd noch bekloppt^^

  • Ich habe ne Header Datei in der steht am Anfang:

    session_name("sessionname");
    SESSION_start();

    In der Header Datei prüfe ich ob Cookies existeren.
    Existieren Cookies wird überprüft ob der inhalt mit dem eigentlichen User in der DB übereinstimmt. Wenn ja wird in die Session username und id aufgenommen.
    User ist eingeloggt..
    Existieren keine Cookies wird überprüft ob in der Session username und id existieren.
    Ist das der Fall User eingeloggt...

    Jetzt kommen wir zu meinem Eigentlichen Problem das Login File.

    Wenn ich in der login datei nicht mit SESSION_start(); starte werden die Cookies nicht gesetzt. Wenn ich SESSION_start(); rein mache und davor noch session_name("sessionname"); schreibe werden Cookies auch nicht gesetzt. Lasse ich es weg erstellt er mir noch extra ein Session Cookie namens PHPSESSID welche ne falsche Session ID aufweist.

    Lasse ich session_name("sessionname"); weg ist normales einloggen ohne Cookies nicht möglich weil er dann Username und Id nicht in die Session schreibt...

    Ich werd noch wahnsinnig :roll:

    Hat jemand ne Ahnung an was das liegen kann?

  • ja, session_start(); muss als ALLER ERSTES in die datei

    <?php session_start(); ?>

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!

  • Zitat von BendOr

    session_start(); muss als ALLER ERSTES in die datei


    Diesen Quatsch liest man leider immer wieder, das ist falsch! session_start muss definitiv nicht als erstes stehen! Wichtig ist, dass vorher keine Ausgabe stattfindet.

    phpfan

  • Zitat von phpfan


    Diesen Quatsch liest man leider immer wieder, das ist falsch! session_start muss definitiv nicht als erstes stehen! Wichtig ist, dass vorher keine Ausgabe stattfindet.

    phpfan

    Wobei das auch nicht so ganz richtig ist =)
    Es muss nur vor einer Ausgabe aufgerufen werden, wenn man eine auf Cookies basierte Session benutzt.

    Zitat

    session_name("sessionname");
    SESSION_start();


    Das ist nicht falsch, jedoch eher unüblich und wird wenn man benannte Sessions verwenden will.

  • Hi,

    ein session-problem, an dem ich schon seit Tagen rumbastle, habe ich auch! Ihr kennt euch ja wirklich gut aus - vielleicht könnt ihr mir helfen:

    wenn sich der user einlogged, wird eine session-id in die DB eingetragen. Ab diesem Zeitpunkt steht zu Beginn jeder Datei session_start(). Wird nun ein Formular, das z.b. in der Datei a.php steht, an der Datei b.php geschickt und muss anschließend in die Datei a.php zurückgekehrt werden (z.b. durch history.back), zeitgt der IE die Meldung an, dass die Datei nicht mehr gültig ist. D.h. ich muss auf "Wiederholen" und "Aktualisieren" gehen, damit ich die Seite wieder angezeigt bekommen - die Felder, die schon ausgefüllt waren, sind folglich auch wieder leer. Ich dachte immer, dass das mit sessions vermieden wird. Was mache ich denn hier nu wieder falsch????? Kann einer helfen??????