• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Warning: Cannot modify header information

Dsimon24

Mitglied
Hallo zusammen,

ich hoffe, dass es hier im richtigen Unterforum gepostet ist,
aber ich denke, dass der Fehler mit HTML zusammenhängt.

Sende ich ein Formular auf einer PHP-Seite an den Server,
erhalte ich folgende Meldung:

Warning: Cannot modify header information -
headers already sent by (output started at /var/www/htdocs/smart1/html/smhr/templates/navi.tpl.php:108)
in /var/www/htdocs/smart1/html/smhr/add_Kunde.php on line 78

Bei der navi.tpl.php handelt es sich um den Head-Bereich inkl. den Navigationselementen:

HTML:
<?php
    require_once('session.php');

    require_once 'src/Entities/User.php';
    $auth_user = new USER();
   
   
    $user_id = $_SESSION['user_session'];
   
    $stmt = $auth_user->runQuery("SELECT * FROM users WHERE user_id=:user_id");
    $stmt->execute(array(":user_id"=>$user_id));
   
    $userRow=$stmt->fetch(PDO::FETCH_ASSOC);

    $user_group = $userRow['group'];
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" media="screen">
    <script type="text/javascript" src="bootstrap/js/jquery-1.11.3-jquery.min.js"></script>

    <link rel="stylesheet" href="style.css" type="text/css"  />
    <title>smHR</title>

    <!-- Custom styles for this template -->
    <link href="css/responsive.css" rel="stylesheet" />
    <link rel="stylesheet" type="text/css" href="css/tabs.css" media="all" />
   
<script>
    //Display Popup
    function div_show()
    {
        document.getElementById('abc').style.display = "block";
    }
</script>
</head>


<body>

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container">
        <div class="navbar-header">
            <div class="dreieck">
                <a href="http://www.xyz.de"><img src="templates/img/LOGO.png" alt="XYL-Text" /></a>
            </div>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
            <ul class="nav navbar-nav">
                <li class="active"><a href="home.php">Home</a></li>
                <li><a href="#">Menü</a></li>
                <li><a href="#">Menü</a></li>
                <li><a href="#">Menü</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Bewerber<span class="caret"></span></a>
                    <ul class="dropdown-menu">
                        <li><hr></li>
                        <li><a href="#">Eintrag 3</a></li>
                        <li><a href="#">Eintrag 4</a></li>
                                                <li><hr></li>
                    </ul>
                </li>           
            </ul>
            <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
                        <span class="glyphicon glyphicon-user"></span>
                        &nbsp;Guten Tag <?php echo '<b>' . $userRow['user_vorname'] .' '. $userRow['user_nachname'] . '</b>'; ?>&nbsp;
                        -  letzter Login: <?php $uhrzeit = date("H:i"); ?>
                                                <?php echo $uhrzeit . ' Uhr'; ?>
                        <span class="caret"></span>
                    </a>
                    <ul class="dropdown-menu">
                        <li>
                            <a href="#">
                            <span class="glyphicon glyphicon-user"></span>
                            &nbsp;View Profile
                            </a>
                        </li>
                        <li>
                            <a href="#?logout=true">
                            <span class="glyphicon glyphicon-log-out"></span>
                            &nbsp;Sign Out
                            </a>
                        </li>
                    </ul>
                </li>
            </ul>
        </div><!--/.nav-collapse -->
    </div>
</nav>

Nehme ich den folgenden Code-Schnippsel aus der Datei heraus, funktioniert alles prächtig:

HTML:
            <div class="dreieck">
                <a href="http://www.xyz.de"><img src="templates/img/LOGO.png" alt="XYL-Text" /></a>
            </div>

Was könnte daran so falsch sein, dass ich die Meldung erhalte?

VG, David
 
ich hoffe, dass es hier im richtigen Unterforum gepostet ist,
aber ich denke, dass der Fehler mit HTML zusammenhängt.
Hat dir HTML jemals eine Fehlermeldung um die Ohren gehauen?

Was könnte daran so falsch sein, dass ich die Meldung erhalte?
Wenn du google mal mit
Cannot modify header information headers already sent
füttern würdest, bekommst du rund 9,2 Millionen Hinweise. Reicht das wirklich nicht?
 
Ich habe gestern meinen ganzen Arbeitstag mit googeln verbracht -
nein, es hilft mir in dem Falle leider nicht weiter.

Der Fehler scheint ja mit dem HTML-Code
HTML:
<div class="dreieck">
<a href="http://www.xyz.de"><img src="templates/img/LOGO.png" alt="XYL-Text" /></a>
</div>
zusammenzuhängen. Hier wüsste ich aber nicht, was falsch ist.
Nehme ich diesen Schnippsel raus, dann funktioniert es ja.
 
Der Fehler scheint ja mit dem HTML-Code
HTML:
<div class="dreieck">
<a href="http://www.xyz.de"><img src="templates/img/LOGO.png" alt="XYL-Text" /></a>
</div>
zusammenzuhängen. Hier wüsste ich aber nicht, was falsch ist.
Nehme ich diesen Schnippsel raus, dann funktioniert es ja.
Macht an dieser Stelle des Quellcodes aber wenig Sinn. Zumal sich der Fehler auf "add_Kunde.php" und nicht "navi.tpl.php" bezieht.

Man sollte die Fehlermeldung schon richtig lesen.
Die genannte Fehlermeldung wird vom PHP-Parser erzeugt, wenn versucht wird HTTP-Header-Daten zu senden, obwohl bereits Body-Daten gesendet wurden. Nachdem ein Client (z.B. ein Webbrowser) eine HTTP-Anfrage auf eine Webseite stellt, gibt der Server eine HTTP-Antwort. Anfrage als auch Antwort bestehen aus zwei Teilen: Header (Kopf) und Body (Körper) der Sendung.

Im Header stehen Hintergrundinformationen und Kopfdaten zur aktuellen Übertragung. Er steht immer am Anfang.

Im Body wird der eigentliche Inhalt der Anfrage bzw. Antwort übertragen. Er folgt auf den Header.
 
Du bekommst zwei Hinweise von PHP!
Einmal, wo der Fehler bemerkt wurde, also "add_Kunde.php on line 78" und dann, warum ein Fehler auftritt, also "(output started at /var/www/htdocs/smart1/html/smhr/templates/navi.tpl.php:108)"
Ich tippe mal darauf, dass in add_kunde.php sowas wie header steht und schon haben wir das Problem eingekreist. Wenn man mit diesen millionen google-Treffern nicht auf das Problem und die Lösung kommt, .... ich sag's besser nicht.
 
Ja, in der Datei steht eine Header-Anweisung.
Aber was ich nicht verstehe...
Warum funktioniert denn alles, wenn ich den einen
Code-Schnippsel entferne? Dann kann es ja nicht an
der header-Anweisung in der add_kunde.php liegen
- oder doch?
 
Vielleicht siehst du die Fehlermeldung nicht, sieh' dir mal den HTML-Code an, den der Browser ausgeliefert bekommt. Und doch, es liegt an der header-Anweisung, die ist falsch plaziert.
 
Ja, so ist es.
Wie kann ich denn ohne header-Anweisung eine Weiterleitung realisieren,
sobald ich den Kunden angelegt habe, bzw. das Formular an die add_
kunde.php geschickt habe? Ich möchte dann auf eine andere Seite
weitergeleitet werden, um in der App weiter arbeiten zu können.
 
Halte dich an das EVA-Prinzip.

Und überlege mal, warum sollte man etwas ausgeben, was aufgrund der Weiterleitung sowieso niemand sieht
 
Zurück
Oben