PHP header Fehler
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absatz
ausgabe
befehl
betreff
code
dank
date
datum
erreichen
fehler
header
nachricht
output
probieren
problem
schau
treten
weiterleitung
zeile
zusammenhang
-
Hallo !
Ich habe ein Newsscript programmiert. Eben habe ich eine Weiterleitung mit header() reingeschrieben, seitdem kommt dieser Fehler
Der Fehler:
Warning: Cannot modify header information - headers already sent by (output started at /home/www/web48/html/admin/news.php:5) in /home/www/web48/html/admin/news.php on line 21
Der Code ist:
<?php .... if($_GET[action]==add){ $nachricht = htmlentities($nachricht); $betreff = htmlentities($betreff); mysql_query("insert into news (zeit,datum,betreff,nachricht) values ('$zeit','$datum','$betreff','$nachricht')"); header('Location: /home/www/web48/html/admin/news.php'); } ... ?>
Woran liegt das? Ich will damit erreichen, dass man nachdem man eine News hinzugefügt hat, auf news.php umgeleitet wird.
Nach dem Fehler habe ich schon gesucht bei google, aber keine Lösung für mein Problem gefunden.
Mfg
Beitrag zuletzt geändert: 21.12.2010 11:11:49 von davy -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Der Fehler tritt meistens auf, wenn irgendwo vor dem Header-Befehl bereits eine Ausgabe erfolgt, meistens "echo". Also schau doch mal ob du irgendwo vor dem Header eine Ausgabe hast, schätzungsweise um die Zeile 21 rum
Das ist vermutlich der am häufigst auftrettende Fehler im Zusammenhang mit Header. -
alfr3d schrieb:
Der Fehler tritt meistens auf, wenn irgendwo vor dem Header-Befehl bereits eine Ausgabe erfolgt, meistens "echo". Also schau doch mal ob du irgendwo vor dem Header eine Ausgabe hast, schätzungsweise um die Zeile 21 rum
Das ist vermutlich der am häufigst auftrettende Fehler im Zusammenhang mit Header.
Ja, davor wird einiges schon ausgegeben
Wie kann ich denn eine Weiterleitung auf news.php machen?
Hier ein bisschen mehr vom Code: (von Anfang)
<?php include ("checkuser.php"); ?> <?php require('../config/config.php'); $db = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error()); mysql_select_db($dbname,$db) or die(mysql_error()); $zeit = time(); $datum = date("d.m.y"); if($_GET[action]==add){ $nachricht = htmlentities($nachricht); $betreff = htmlentities($betreff); mysql_query("insert into news (zeit,datum,betreff,nachricht) values ('$zeit','$datum','$betreff','$nachricht')"); header("LOCATION: ./news.php"); } if($_GET[action]==delete){ mysql_query("delete from news where id='$_GET[id]'"); } ....
-
anstatt der Zeile:
header('Location: /home/www/web48/html/admin/news.php');
einfach mal so probieren:
echo "<meta http-equiv=\"refresh\" content=\"0; URL=/home/www/web48/html/admin/news.php\" />";
-
alfr3d schrieb:
anstatt der Zeile:
header('Location: /home/www/web48/html/admin/news.php');
einfach mal so probieren:
echo "<meta http-equiv=\"refresh\" content=\"0; URL=/home/www/web48/html/admin/news.php\" />";
Danke ! Hat geklappt ! -
davy schrieb:
alfr3d schrieb:
anstatt der Zeile:
header('Location: /home/www/web48/html/admin/news.php');
einfach mal so probieren:
echo "<meta http-equiv=\"refresh\" content=\"0; URL=/home/www/web48/html/admin/news.php\" />";
Danke ! Hat geklappt !
Das ist doch keine wirkliche Lösung. Wie bereits gesagt, wird die Weiterleitung über Header() nicht augeführt, da du bereits eine Ausgabe hast und zwar hier:
<?php include ("checkuser.php"); ?> <?php require('../config/config.php'); ....
Dort gibts du einen Absatz aus. Richtig wäre:
<?php include ("checkuser.php"); require('../config/config.php'); ....
-
Natürlich ist es nicht die beste Lösung, aber die Fehlerquelle hab ich ja ebenso erläutert, also gehe ich davon aus, dass man mit ein bisschen Eigeninitative selbst dahinter kommt was man ändern muss.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage