Kein header(""); bei xammp?

Kalma

Erfahrenes Mitglied
Hey,

wieder mal ein Problem:
So eben wollte ich mein Script auf meinem Xammp Server testen, stellte aber fest, das meine
PHP:
header("Location: index.php?section=index");
-Funktion nicht funzte.

Folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\olsen\index.php:2) in C:\xampp\htdocs\olsen\newnewscomment.php on line 15

Muss man das irgendwie/irgendwo einstellen?

Weiß jemand von euch, wo?
 
Such mal nach den Stichwörtern der Fehlermeldung. Dieses Thema wurde bereits ausreichend behandelt.
 
Hallo,

gibst du vor dem Header mit echo was aus?
Wie schon Gumbo gesagt hat, dass Problem wurde schon ziemlich oft besprochen. ;)

Tobee
 
Hey,

jo, ich werde mal suchen:

Nein, ich geb kein echo in der datei aus:
PHP:
<?php
//posten
$nid		= $_POST['nid'];
$name		= $_POST['name'];
$comment	= $_POST['comment'];
$tag		= date("F d, Y");
$uhr		= date("g:i a");

$Query = "INSERT INTO
			newscomment (`nid`, `name`, `comment`, `tag`, `uhr`)
		  VALUES
		  	('$nid', '$name', '$comment', '$tag', '$uhr')";
$Result = mysql_query($Query);

header ("Location: index.php?section=newscomment&id=$nid");
?>
 
Vor dem Setzen einer Header-Information darf keine Ausgabe jeglicher Art erfolgt sein. Dazu gehören auch Leer- oder Zeilenumbruchzeichen.
 
Dennis Wronka hat gesagt.:
Wird das Script direkt aufgerufen oder includet?

Die Seiten werden includet:

Hier meine index.php
HTML:
<link href="style.css" rel="stylesheet" type="text/css">
<?php include "connect.php"; ?>

<table border="0" width="104%">
 <tr>
  <td colspan="3" valign="top"><img src="http://www.tutorials.de/forum/images/header.jpg" width="100%" height="71"></td>
 </tr>
 <tr>
  <td width="4%" valign="top" class="menu">
   <?php
	include "menu.php"; 
   ?>   
  </td>
  <td width="41%" valign="top">
   <?php
    if (($_GET['section'] == "") OR ($_GET['section'] == "index"))
	{ include "news.php"; }
	
	
	//kommentar seiten
	if ($_GET['section'] == "newscomment")
	{ include "newscomment.php"; }
	if ($_GET['section'] == "newnewscomment")
	{ include "newnewscomment.php"; }
   ?>
  </td>
  <td width="10%" valign="top" class="menu2">
   <blockquote>
   <?php
    include "menu2.php";
   ?>
   </blockquote>  
  </td>
 </tr>
 <tr>
   <td colspan="3" valign="top" class="fußzeile">
    <?php include "copyright.php"; ?>
   </td>
  </tr>
</table>

Achso, noch zur Info:
Auf dem Webspace läuft dieses Script, nur halt bei Xammp nicht
 
Zuletzt bearbeitet:
Der ganze HTML-Code der schon ausgegeben wird ist das Problem.
Auf dem Server wird wohl das Output-Buffering per php.ini aktiv sein.
Da Du Dich da nicht drauf verlassen kannst dass das immer an bleiben wird empfehle ich Dir entweder den Code so zu aendern dass nichts ausgegeben wird falls header() oder eine aehnliche Funktion genutzt werden soll. Oder Du setzt selbst die Output-Control ein.
 
Les nochmal, was Gumbo dir sagte. BTW heisst das xampp, doppel-P, nicht doppel-M.

Also, du machst doch davor die Ausgabe <link href="style.css" rel="stylesheet" type="text/css">. Das darf NICHT sein.

Azi
 
Wenn du zuvor schon etwas HTML Code stehen hast, wird die Header Funktionen (und andere wie Session_Start() etc.) nicht funktinoieren, da der Header in HTML immer VOR dem Quelltext geschickt werden. Das hier ist also falsch:

HTML:
<html>
<head>
</head>
<body>
<?php
header("blablablubb");
?>
</body>
</html>

das wäre richtig:
HTML:
<?php
  header("blablablubb");
?>
<html>
<head>
</head>
<body>
</body>
</html>
 
Zurück