SESSION-Variable außerhalb session_start() auslesen

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

  • SESSION-Variable außerhalb session_start() auslesen

    Hallo Forum,

    ich möchte, kurz gesagt, auf einer Seite nur die Session wieder aufnehmen, wenn eine bestimmte Session-Variable, z.B. $_SESSION['user'] gesetzt ist.

    Ist es möglich, über eine einfache Abfrage, z.B.

    PHP-Code:
    if ( isset($_SESSION['user']) ) {
    session_start();
    } else {
    header(...);

    zu entscheiden, ob eine Session gestartet werden soll oder nicht?

    Könnte man diese Variable auch ausgeben oder anderswo speichern?
    Ist das nicht ein Sicherheitsrisiko?

    Danke im voraus,

    LowTower.

  • #2
    denk mal logisch: $_SESSION speichert variablen die von einer auf die andere seite übertragen wird.


    du möchtest die session - mit deren hilfe du diese variablen speicherst - nur starten, wenn diese variable bereits in der session existiert?


    denk mal logisch nach.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Re: SESSION-Variable außerhalb session_start() auslesen

      PHP-Code:
      session_start();
      if (!isset(
      $_SESSION['user']) ) {
       
      header(...);
       die();


      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
        Re: SESSION-Variable außerhalb session_start() auslesen

        Original geschrieben von Lowtower
        Könnte man diese Variable auch ausgeben oder anderswo speichern?
        Ist das nicht ein Sicherheitsrisiko?
        verstehe beide Fragen nicht

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

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

        Kommentar


        • #5
          Hallo zusammen,

          OKAY, dann habe ich wohl zu wenig Details verraten oder ich bin zu blöd!

          Ich möchte folgendes:

          Ich habe eine Website mit fünf normalen Seiten; fünf weitere werden erst sichtbar, wenn man sich ordnungsgemäß eingeloggt hat!
          Dennoch soll man weiterhin die fünf normalen Seiten besuchen dürfen, ohne dass die Session beendet wird.
          Hat man sich nicht eingeloggt, besteht auch keine Notwendigkeit, eine Session für die normalen Seiten zu starten.

          Also, ist man nicht eingeloggt, müsste erst geprüft werden, ob von einer anderen Seite schon eine Session gestartet wurde, die fortgeführt wird, oder, ob noch keine existiert, dann muss auch keine gestartet werden.

          Vielleicht denke ich aber auch nur zu kompliziert.

          Danke,

          LowTower.

          Kommentar


          • #6
            Original geschrieben von Lowtower
            Vielleicht denke ich aber auch nur zu kompliziert.
            ja
            du startest für jeden eine Session und veränderst sie, wenn er sich ein oder ausloggt. Fertig

            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
              Hallo Ghostgambler,

              meine Idee war eben nur, die Session gar nicht erst zu öffnen, wenn es nicht nötig ist.

              Eigentlich will ich das auch nur, damit die Session-ID nicht an die URI gehängt wird, wenn Cookies verweigert werden!

              Einige Besucher der Seiten werden dadurch sehr verwirrt, wie ich feststellen musste.

              Und man kann ja nicht erwarten, dass Cookies von jedem akzeptiert werden.

              Danke soweit, Gruß,

              Lowtower.

              Kommentar


              • #8
                du machst bei den Leuten, die nicht eingeloggt sind per ini_set das URL-Änhängen aus...ist ja egal, denn die Session bedeutet dir bei den Usern ja eh nichts...
                ehrlich gesagt ich würde die Einstellung sowieso komplett ausschalten -.-

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

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

                Kommentar


                • #9
                  Hallo Ghostgambler,

                  dann habe ich aber wieder ein Problem!!

                  Wenn ich per ini_set(...) eine Einstellung verändern will, kann ich das nur machen bevor ich die Session starte.
                  Da weiß ich aber eben noch nicht, ob die Session-Variable existiert oder nicht.

                  Gruß, LowTower.

                  Kommentar


                  • #10
                    Original geschrieben von Lowtower
                    dann habe ich aber wieder ein Problem!!

                    Wenn ich per ini_set(...) eine Einstellung verändern will, kann ich das nur machen bevor ich die Session starte.
                    Da weiß ich aber eben noch nicht, ob die Session-Variable existiert oder nicht.
                    dann setzt du sie ggf. hinterher wieder zurück....du machst es dir aber auch kompliziert

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

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

                    Kommentar


                    • #11
                      Hallo GhostGambler,

                      also entweder ich habe es immer noch nicht kapiert.
                      Oder es ist wirklich nicht so einfach!

                      Angenommen ich habe jemanden, der Cookies verweigert und ich habe die Übergabe der Session-ID über die URL ausgeschaltet.

                      Fall a) Es kommt jemand, der nicht eingeloggt ist. Dann ist alles OK.
                      Die Session wird zwar gestartet, die Session-ID wird aber nicht an die URL gehängt.

                      Fall b) Es kommt jemand, der eingeloggt ist.
                      Dann brauche ich doch zwingend die Übergabe der Session-ID per URL, oder?!
                      Das bedeutet doch aber auch, dass ich diese Übergabemöglichkeit nicht ausgeschaltet haben darf!!
                      Wenn ich jetzt die Session schon gestartet habe, kann ich per ini_set aber auch die Einstellungen nicht mehr ändern.

                      Solange ich die $_SESSION[]-Variable nicht überprüft habe, weiß ich ja nicht, ob derjenige ordnungsgemäß eingeloggt ist oder nicht. Und das kann ich ja erst überprüfen, wenn die Session bereits gestartet wurde, ich also keine Einstellungen mehr verändern kann.

                      Wo ist mein Denkfehler?

                      Gruß,

                      LowTower.

                      Kommentar

                      Lädt...
                      X