Wie man überprüft, ob eine PHP-Session bereits gestartet ist, und den Fehler «headers already sent» vermeidet
Hallo zusammen! Ich bin neu in PHP und schreibe eine kleine Website mit Authentifizierung. Ich habe mehrere Skripte, die mit Sessions arbeiten. In einer Datei starte ich die Session mit session_start() und binde dann andere Dateien über include ein. Das Problem ist, dass PHP einen Fehler ausgibt, wenn ich versehentlich zweimal session_start() in verschiedenen Dateien aufrufe:
Warning: session_start(): Cannot send session cookie - headers already sent
Ich verstehe, dass dieser Fehler auftritt, weil die Header bereits gesendet wurden und ein erneuter Aufruf von session_start() nicht möglich ist. Aber wie kann ich überprüfen, ob eine Session bereits gestartet ist, um session_start() nicht erneut aufzurufen? Ich habe versucht, @ am Anfang zu verwenden, um den Fehler zu unterdrücken, aber das ist, wie ich verstanden habe, eine schlechte Praxis.
Hier ist ein Beispiel meines Codes:
// config.php
session_start();
$_SESSION['user'] = 'admin';
// page.php
include 'config.php';
session_start(); // Hier wird der Fehler ausgegeben, wenn config.php bereits session_start() aufgerufen hat
Ich brauche so etwas wie: if (session_not_started
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen