[php] Warnung: Header-Informationen können nicht geändert werden - Header, die bereits von ERROR gesendet wurden



Answers

Überprüfen Sie etwas mit echo , print() oder printr() in der Include-Datei header.php .

Es könnte sein, dass dies das Problem ist ODER wenn eine MVC-Datei, dann überprüfen Sie die Anzahl der Leerzeichen nach ?> . Dies könnte auch ein Problem verursachen.

Question

Mögliche Duplikate: Header, die bereits von PHP gesendet wurden

Ich habe seit einiger Zeit mit diesem Fehler gekämpft.

Zunächst dachte ich, es wäre nur Leerraum, aber nach weiteren Recherchen könnte es ein ähnliches Problem sein:

Suchen Sie nach Anweisungen, die vor dieser Header-Anweisung Ausgaben an den Benutzer senden könnten. Wenn Sie eine oder mehrere finden, ändern Sie den Code, um die Header-Anweisung vor ihnen zu verschieben. Komplexe bedingte Anweisungen können das Problem komplizieren, sie können jedoch auch zur Lösung des Problems beitragen. Betrachten Sie einen Bedingungsausdruck am Anfang des PHP-Skripts, der den Header-Wert so früh wie möglich bestimmt und dort einstellt.

Ich vermute, dass die Include-Header das Problem zusammen mit dem Header () verursacht, aber ich bin mir nicht sicher, wie Sie den Code neu anordnen, um diesen Fehler loszuwerden.

Wie entferne ich den Fehler?

<?php
    $username = $password = $token = $fName = "";

    include_once 'header.php';

    if (isset($_POST['username']) && isset($_POST['password']))
        $username = sanitizeString($_POST['username']);

    $password = sanitizeString($_POST['password']); //Set temporary username and password variables
    $token    = md5("$password"); //Encrypt temporary password

    if ($username != 'admin')
    {
        header("Location:summary.php");
    }
    elseif($username == 'admin')
    {
        header("Location:admin.php");
    }
    elseif($username == '')
    {
        header("Location:index.php");
    }
    else
        die ("<body><div class='container'><p class='error'>Invalid username or password.</p></div></body>");

    if ($username == "" || $token == "")
    {
        echo "<body><div class='container'><p class='error'>Please enter your username and password</p></div></body>";
    }
    else
    {
        $query = "SELECT * FROM members WHERE username='$username'AND password = '$token'"; //Look in table for username entered
        $result = mysql_query($query);
        if (!$result)
            die ("Database access failed: " . mysql_error());
        elseif (mysql_num_rows($result) > 0)
        {
            $row = mysql_fetch_row($result);
            $_SESSION['username'] = $username; //Set session variables
            $_SESSION['password'] = $token;

            $fName = $row[0];
        }
    }
?>



Sie versuchen, Kopfzeileninformationen nach dem Ausgeben von Inhalt zu senden.

Wenn Sie dies tun möchten, suchen Sie nach Ausgabepufferung.




Related



Tags

php php   header