Prob! brauch Hilfe: Warning: Cannot add header information - headers already sent...

zg peripherals

Erfahrenes Mitglied
Hi.

hab mal versucht eine Seite über php aufzurufen, nach folgednem Prinzip:

<?
if($id == 1){header ("Location: http://www.meinedomain.net/programme.php");
exit;}
if($id == 2){header ("Location: http://www.meinedomain.net/downloads.php");
exit;}
?>

mit folgendem hyperlink ruf ich die entsprechende siete auf:

http://meinedomain.net/test.php?id=1


aber was dann kommt ist nicht folgende seite: http://www.meinedomain.net/programme.php

sondern folgende Seite: http://meinedomain.net/test.php?id=1

mit folgendem text:

Warning: Cannot add header information - headers already sent by (output started at /home/www/htdocs/meinedomain.net/test.php:9) in /home/www/htdocs/meinedomain.net/test.php on line 10



wo ist dass Problem, und wie kann ich was dagegen tun???

ich hoffe, ihr könnt mir helfen! BITTE!!!! ist wirklich wichtig!!!

danke schonmal

zg

P.S.: Blöde frage, ich weiss, aber: muss ich die php datei an eine bestimmte position oder in einen bestimmten Ordner platzieren, dass das klappt? (ja mein server unterstützt php!!!)
 
wenn du den header senden willst nachdem du die page schon geöffnet hast spackt er rum....
Lösung:
<? ob_start(); ?> //am anfang der page
.....
<? ob_end_flush(); ?> // am ende der page

das ist ein einfacher puffer klein aber wirkungsvoll :-) :-)
 
hat leider überhaupt nichts gebracht!!!

ich häng mal den quelltext dran, vielleicht hab ich ja was falsch gemacht!

<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<? ob_start(); ?>
<?
if($id == 1){header ("Location: http://www.meinedomain.net/index.html");
exit;}
if($id == 2){header ("Location: download.com");
exit;}
?>



<p>&nbsp;</p>
<p><a href="http://www.meinedomain.net/test.php?id=1">mp3.com</a></p>

<? ob_end_flush(); ?>
</body>


vielleicht kannst du mir ja weiterhelfen!




Weenn sonst jemand weiss, was ich falsh gemacht habe, BITTE MELDEN!!!

danke

zg
 
ja du musst den puffer am anfang und am ende setzten (eigenes <? ?>)
<? ob_start(); ?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<?
if($id == 1){header ("Location: http://www.meinedomain.net/index.html");
exit;}
if($id == 2){header ("Location: download.com");
exit;}
?>
<p> </p>
<p><a href="http://www.meinedomain.net/test.php?id=1">mp3.com</a></p>
</body>
</html>
<? ob_end_flush(); ?>
 
das ist doch net scer dazu gibts auch n tut ^^ hier was kurzes
PHP:
switch($id) {
   case 1:
   include("programme.php");
   break;
}

meinst du sowas?
 
was DarkSummer da geschrieben hat is im grunde das gleiche wie:
<?
if($id == 1){
header ("Location: http://www.meinedomain.net/index.html");
exit;
}
if($id == 2){
header ("Location: download.com");
exit;
}
?>
nurdamit es 1.praktischer und 2. besser ist ;-)

switch($id) {
case 1:
include("programme.php");
break;

case 2;
include("bla.php");
break;
}
dann kannst du mit index.php?id=1 ==> programme.php aufrufen
dann kannst du mit index.php?id=2 ==> bla.php aufrufen

Noch fragen?
 
Nur mal so: Der Fehler liegt daran das du den Header senden willst nachdem du eine HTML-Ausgabe gemacht hast...das darf nicht sein...du musst den Header vor allen HTML-Dingen bringen...also:

<?
if($id == 1){header ("Location: http://www.meinedomain.net/index.html");
exit;}
if($id == 2){header ("Location: download.com");
exit;}
?>

vor

<html>
<head>
...
 
ok, da klappt ja.

aber nachdem der Link ausgeführt wurde, steht da die richtige url. aber die soll ja durch das ?id=1 weiterhin versteckt bleiben!!!

wie ghet dass?
 
Zurück