PHP: Prüfen ob Session bereits besteht - Fehlermeldung "A session had already been started" verhindern
Frage von Gast | Letztes Update am 09.03.2023 | Erstellt am 08.02.2018
Ich arbeite in einem meiner PHP-Scripts mit Sessions. Hier kommt es ab und an leider vor, dass offenbar schon eine PHP-Session besteht, nachdem ich session_start() aufrufe. Dadurch erhalte ich die folgende Fehlermeldung:
Notice: A session had already been started - ignoring session_start()
Wie kann ich diese Fehlermeldung verhindern und prüfen, ob bereits eine Session existiert und session_start() entsprechend nur dann aufrufen, wenn es noch keine Session gibt?
Ähnliche Themen
PHP Session Variablen (PHPSESSID) auch unter Subdomains verfügbar machen
Tipp | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
PHP: Nur bestimmte Buchstaben, Zahlen und Zeichen in einem String zulassen
Tipp | 10 Kommentare
PHP Fehler: Cannot send session cache limiter - headers already sent
Frage | 2 Antworten
Was haben sich solche für Titel gegeben die als "Radikalfeministin" bezeichnet werden können?
Offene Frage | 0 Antworten
HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial | 0 Kommentare
Besteht ein faschistischer Zusammenhang des Wortes "Tomboy" und des faschistischen Begriffs "Tommy"?
Offene Frage | 0 Antworten
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Du kannst einfach mit isset() überprüfen, ob bereits eine Session besteht beziehungsweise in diesem Fall ob keine Session offen ist.
Das machst du folgendermaßen:
Die beste Lösung wäre allerdings, deinen Code so anzulegen, dass session_start() verlässlich immer nur einmal aufgerufen wird, zum Beispiel immer beim Starten deines Scripts. Bei einem guten Code-Design sollte es eigentlich nicht zu einem mehrmaligen Aufrufen von session_start() kommen.
Letztes Update am 09.03.2023 | Erstellt am 08.02.2018
Du kannst auch die PHP-Funktion session_status() verwenden, um zu überprüfen, ob aktuell eine Session besteht.
Sofern eine Session offen ist, erhältst du von session_status() PHP_SESSION_ACTIVE zurück. Du kannst also schreiben:
Dies prüft ob session_status() ungleich PHP_SESSION_ACTIVE (= eine Session ist aktiv) ist und startet dann eine neue Session.
Andere Rückgabewerte von session_status() sind:
Siehe auch hier im PHP-Manual.
09.02.2018 um 02:54