Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Auf welche Seiten muss session_start();

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Auf welche Seiten muss session_start();

    Guten Abend,

    ich bastel gerade etwas und würde gerne wissen auf welche Seiten ein session_start(); muss.

    Da ich auf jeder seite den bereich zuum einloggen habe (sidebar) welcher bei eingeloggten usern ausgeblendet bzw ersetzt wird mit untermenüs , müsste es doch auf jede seite?

    Andererseits schickt er mich ja immer zum ein loggen wenn ich nicht eingeloggt bin sodass ein nicht eingeloggter user die seite nichtmehr sieht?!

    Stimmt das so?

  • #2
    Es geht hierbei nicht um Login o.ä., session_start() ist nicht (nur) dazu da, um eine neue Session zu starten, sondern auch um eine bestehende wieder zu laden. Du musst also session_start() auf jeder Seite aufrufen, wo du Zugriff auf die Session brauchst.
    [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

    Kommentar


    • #3
      ich bastel gerade etwas und würde gerne wissen auf welche Seiten ein session_start(); muss.
      Auf jeder Seite (wobei eine zentrale Bootstrap Datei sinnvoller als einzelne Dateien wäre), auf der du die Session nutzt. Es darf nur keine Ausgabe davor stehen

      LG

      EDIT: tkausl war schneller
      https://github.com/Ma27
      Javascript Logic is funny:
      [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

      Kommentar


      • #4
        Ich bedanke mich, also kann ich die session_start(); quasi in ne include packen, eventuell die config.inc.php direkt zu beginn das sesseion_start laden, da ich es auf jeder seite benötige aus dem Grund das ja der Loginbereich dann durch etwas anderes u.a dem logoutbutton ersetzt wird.

        Nun kommt aber der Clou, was passiert mit nicht eingeloggten usern. Wenn ich gleich frage ob der user eingeloggt ist und ein NEIN bekomme wird er mir ja nicht den seiten inhalt anzeigen sondern den Spruch Loggen sie sich bitte ein.

        Kommentar


        • #5
          wenn sich vor dem include keine Ausgabe befindet, ja

          LG
          https://github.com/Ma27
          Javascript Logic is funny:
          [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

          Kommentar


          • #6
            Zitat von valentine Beitrag anzeigen
            Nun kommt aber der Clou, was passiert mit nicht eingeloggten usern.
            Das liegt doch an dir. Die Session bietet dir nur den Container, in dem du Sachen speichern kannst. Genauso wie bei Cookies, nur dass die Session Serverseitig gespeichert wird.
            [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

            Kommentar


            • #7
              PHP-Code:

              session_start
              ();
              if (!isset(
              $_SESSION["id"])) $_SESSION["id"] = 0;

              ...

              Beim Login weist du $_SESSION["id"] die User-ID zu

              ...

              If (
              $_SESSION["id"])
                echo 
              "Eingeloggt"//$seite->addMenu("<a href=\"logout.php\">Ausloggen</a>");
              else
                echo 
              "Bitte anmelden"//$seite->addMenu("<form method=\"post\"><input type=\"text\" usw><br><input type=\"password\" usw></form>"); 

              Kommentar


              • #8
                und würde gerne wissen auf welche Seiten ein session_start(); muss.
                Ergänzend: Hiermit kannst du grundsätzich feststellen (falls nötig) ob du schon eine Session gestartet hast, weil bei Start wenn schon eine vorhanden gibts eine Meldung von PHP.

                http://php.net/manual/en/function.session-id.php

                Return Values ¶

                session_id() returns the session id for the current session or the empty string ("") if there is no current session (no current session id exists).
                LG
                The string "()()" is not palindrom but the String "())(" is.

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  Die Session-ID meinte ich gar nicht.

                  $_SESSION["id"] soll die ID des Nutzers aus der Datenbank (MySQL oä) sein, wenn also ID eine auto_increment-Spalte ist gibt es nur Nutzer-IDs >= 1, demnach ist man mit $_SESSION["id"]==0 nicht angemeldet, da es keinen Nutzer mit dieser ID gibt.

                  Kommentar


                  • #10
                    Stimmt, ich bezog mich generell auf was weiter oben.. hab es im Post oben ergänzt, hoff zusammenhang ist jetzt besser erkennbar. Sollte eine Info sein zwecks Feststellung ob schon eine Session gestartet/wiederaufgenommen wurde.
                    The string "()()" is not palindrom but the String "())(" is.

                    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                    PHP.de Wissenssammlung | Kein Support per PN

                    Kommentar

                    Lädt...
                    X