PHP-Warnung: session_start(): Sitzung kann nicht gestartet werden, wenn Header bereits gesendet wurden

Lesezeit: 3 Minuten

Ich erhalte eine Fehlermeldung in meinem wp-debug-Protokoll mit der Aufschrift „PHP-Warnung: session_start(): Sitzung kann nicht gestartet werden, wenn Header bereits in …hooks.php in Zeile 228 gesendet wurden“. Hier ist ein Code-Snippet aus der Datei

function _action_fw_flash_message_backend_prepare() {
            if ( ! session_id() ) {
                session_start();    
            }
        }

session_start(); ist auf 228. Ich habe gelesen, dass session_start die erste Codezeile sein sollte, die in der Datei ausgeführt wird. Wird die Funktionalität des Codes dadurch nicht beeinträchtigt? (Ich habe keine PHP-Erfahrung)

  • Aufrufe von session_start sollten ganz oben im Skript stehen, bevor HTML-Inhalte an den Browser ausgegeben wurden

    – Professor Abronsius

    28. Februar 2018 um 7:22 Uhr

  • Beantwortet das deine Frage? So beheben Sie den Fehler „Header bereits gesendet“ in PHP

    – Showdev

    21. Mai 2021 um 18:22 Uhr

Benutzer-Avatar
Raul

Beweg den session_start() zum Seitenanfang. und ob_flush();in der Fußzeile oder am Ende des Skripts.

<?php
@ob_start();
session_start();
?>

  • Was ist das Problem und wie hilft Ihr Code?

    – Showdev

    21. Mai 2021 um 18:24 Uhr

In Ordnung Leute,

Hier ist die Antwort, die für mich auf 000webhost funktioniert

Wenn es Arbeit für Sie ist, vergessen Sie nicht zu gehen Kommentar und tippe positiv bewerten

Gehe zu public_html->.htacess

Datei öffnen

füge dies ein

php_flag output_buffering on;

BOOM, es ist Arbeit.

  • PHP Output Buffering ändert das PHP-Verhalten, um alle Daten auf einmal zu senden, anstatt zu senden, sobald sie fertig sind. Header können also nicht bereits gesendet werden, daher kein Fehler. Aber es kann die Site verlangsamen, da PHP ausgeführt werden muss, bevor etwas gesendet wird

    – Jon

    19. April 2021 um 13:51 Uhr

  • Was ist das Problem und wie hilft Ihr Code?

    – Showdev

    21. Mai 2021 um 18:24 Uhr

Benutzer-Avatar
Samuel Ramzan

Nach dem Upgrade auf PHP 7.4 bekam ich dieselbe Fehlermeldung, obwohl ich alle meine Tags und Skripte an der richtigen Stelle hatte. Das Problem für mich lag in der Dokumentcodierung, es war so UTF-8also habe ich es geändert UTF-8 ohne BOM und das hat es getan. Alles ist jetzt in Ordnung.

Für mich war das eigentliche Problem ein Leerzeichen am Anfang der PHP-Datei vor dem PHP-Tag. Der folgende Code sollte die erste Zeile Ihrer PHP-Datei sein.

<?php session_start(); ?>

Das Problem tritt auf, wenn Sie HTML-Code oder sogar ein Leerzeichen vor dem obigen Code schreiben. PHP sendet Ihren HTML-Code an den Browser, weshalb der Fehler angezeigt wird, dass Header bereits an den Browser gesendet wird.

Ich habe verwendet WP-Sitzungsmanager für alle meine Projekte. Nimmt den ganzen Aufwand aus dem Erstellen einer Sitzung und Sie können verwenden $_SESSION Anrufe irgendwo in Ihrem Code. Wie in den anderen Kommentaren bereits erwähnt, müssen Sie zum Starten einer Sitzung die ausführen session_start() Funktion, bevor Ihre Header gesetzt sind, also verwenden Sie den Haken plugins_loaded um Ihre Funktion auszuführen.

function _action_fw_flash_message_backend_prepare() {
    if ( ! session_id() ) {
        session_start();    
    }
}

add_action( 'plugins_loaded', '_action_fw_flash_message_backend_prepare' );

Benutzer-Avatar
Weine

Mach es auseinander. Öffnen und schließen Sie Ihr PHP-Header-Skript wie folgt:

<?php

session_start();

  if($_SESSION['Active'] == false){ /* Redirects user to login.php if not logged in */
    header("location:../index.html");
    exit;

        }
?>

Benutzer-Avatar
Kelvin

Hatte das gleiche Problem, ich habe die Lösung für mich gefunden und es ist ganz einfach:

Die php-Datei sollte mit beginnen <?php und sonst nichts davor. In meinem Fall hatte ich vorher ein Leerzeichen <?php; nach dem entfernen war der fehler weg.

1362970cookie-checkPHP-Warnung: session_start(): Sitzung kann nicht gestartet werden, wenn Header bereits gesendet wurden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy