Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Anfängerfrager zum header-Problem





Frage

Hallo, Ich hab die tpyische Meldung "Warning: Cannot modify header information - headers already sent by...." Ich weiss inzwischen, daß vor dem header keine Angabe/Ausgabe gemacht werden sollte. [b] Meine Frage:[/b] Was zälhlt denn im folgenden Code als Ausgabe? Der Headbereich und/oder der echo-befehl, obwohl er im if-Bereich formuliert ist? [code] <html> <head> <title>Anfrage-Formular</title> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <? if ($_POST[´button´]) { if (!$_POST[´eis´]) { echo ´Es fehlen Daten´; } else { header("location: formular2.php"); mail("xyz@xyz.info", "Anfrage", "Eingaben: :Name: $name - Email: $email - Anfrage: $anfrage", "From:$email"); } } //hier folgt das Formular: echo ´ <form name="anfrage" action="´.$_SERVER[´PHP_SELF´].´" method="post">[/code] Vielen Dank für Eure Tips vorab

Antwort 1 von gast16

Zitat:
Was zälhlt denn im folgenden Code als Ausgabe?

Alles was in der Quelltextanzeige des Browsers erscheint. Und sei es nur ein Leerzeichen. Also alles was irgendwie durch PHP ausgegeben wird oder ausserhalb von <?php ?> steht.
Ausnahmen sind nur die Ausgaben von Header-Funktionen, wie z.B. header() oder setcookie().

Antwort 2 von Nitrosamin

hi,
Zitat:
<html>
<head>
<title>Anfrage-Formular</title>
<link href="style.css" rel="stylesheet" type="text/css">
</head>

<body>

Das zählt als Ausgabe.
Auch
Zitat:
echo ´Es fehlen Daten´;
zählt dazu, wobei er sich aber nicht auswirkt.

Nitro

Antwort 3 von Mel

Danke Euch.

mal sehn, ob ichs verstanden hab.

Das Dokument muss in der ersten Zeile mit "<?php" beginnen und danach hat sofort der Befehl "header " zu folgen, damit es klappt.

Wie mach ich das denn, wenn ich einen Fall mit if habe und bei else einen Redirect mitteilen möchte?

Ist das denn gar nicht möglich?

Ich stell mich hier sicherlich wieder zu dumm an, sorry....

LG
Mel

Antwort 4 von gast6

Zitat:
Das Dokument muss in der ersten Zeile mit "<?php" beginnen

Ja. Es können aber glaub ich auch Leerzeilen davor stehen.

Zitat:
.. und danach hat sofort der Befehl "header " zu folgen, damit es klappt.

Nein. Da kann soviel PHP-Code kommen, wie will. Es darf nur nichts ausgegeben werden. Also da können ruhig auch Echo-Befehle stehen, sie dürfen nur nicht zur Ausführung gelangen.

Antwort 5 von Mel

Das Header-Problem beschäftigt mich immer noch:

Wie verhält sich der Header, wenn ich ein css einbinden will.
Die Einbindung kann doch nur im Headteil des Html -codes erfolgen und wäre somit eine Ausgabe, die dann wiederum ein Problem für die Headerweiterleitung wäre oder?



<html>
<head>
<link rel=stylesheet type="text/css" href="style.css">

<?php

if ($_REQUEST[´button´] && !empty($_REQUEST[´eis´]) && !empty($_REQUEST[´eisdiele´]) && !empty($_REQUEST[´eissorte´]) && !empty($_REQUEST[´eiskugel´]) && !empty($_REQUEST[´eislöffel´])) 
		  {
               header("location: formular2.php?SID?");	   


Was meint ihr dazu?

Danke und bis gleich
Mel

Antwort 6 von gast58

Richtig. Das Problem ist das "<" von "<html>". Das ist die erste Ausgabe, danach ist es zu spät für Header.
Aber es gibt ja auch keinen Grund "<html>" VOR "<?php" zu schreiben. Danach geht doch auch.

Antwort 7 von Mel

Es geht mir eigentlich darum, daß Stylesheet irgendwie einbinden zu können.

kann ich das ganze dann so aufbauen, daß der html-teil erst später kommt?! so zum Beispiel:

<?php

if ($_REQUEST[´button´] && !empty($_REQUEST[´eis´]) && !empty($_REQUEST[´eisdiele´]) && !empty($_REQUEST[´eissorte´]) && !empty($_REQUEST[´eiskugel´]) && !empty($_REQUEST[´eislöffel´]))
       {
header("location: formular2.php?SID?");   

<html>
<head>
<link rel=stylesheet type="text/css" href="style.css">
............................




bis gleich
Mel

Antwort 8 von gast58

Ja aber Du musst den PHP-Tag vor <html> durch "?>" schliessen. Bei Bedarf kann man ja später wieder einen Neuen aufmachen.

Antwort 9 von Mel

ja, ok,

dann hab ichs verstanden und probiers auch gleich mal aus.

Mal schaun.

Vielen lieben Dank vorab für die Utnerstützung

Gruss Mel

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: