header ("Location: ..") - Problem (Serverproblem?)

davec

Grünschnabel
Ich hab ein Problem! Bzw. habe ich es erst gekriegt als ich den Kram von meinem lokalen Host auf meinen Webspace gepackt habe.

Also.
Folgende Test-Datei(php.php):

PHP:
 <?
  echo 'lalala';
  header ('Location: http://www.tutorials.de/'); 
  echo '<br>hund';
  exit;
  ?>

Wenn ich mit jetzt die Datei(php.php) angucke gibt er Folgendes aus:


Es findet keine Umleitung statt.
Ich habs auch mal mit

PHP:
header("Content-Disposition: attachment; filename=datei.mp3");

versucht, aber da geht auch nix (datei.mp3 war im selben Ordner, wie php.php).

Und wie schon gesagt, lokal läuft alles wunderbar.

Auf meinem Webserver ist PHP 4.3.8 drauf, genau wie auf meinem lokalen server.

Danke schonmal!

Grüße,
Dave!
 
Zuletzt bearbeitet:
Ich glaube der Fehler liegt darin, dass du vor dem Header-Aufruf bereits eine Ausgabe (nämlich 'lalala') stattfinden lässt. Nur wundert es mich, dass du gar keine Fehlermeldung bekommst?

PS: Die A-Tags um die URL kommen durch das Board oder?
 
Ja. Hatte ausversehen URLs automatisch umwandeln noch angeschaltet.

naja habs jetzt ohne das 'lalala' versucht. also nur den header und da drunter echo mit 'hund'. jetzt gibt er nurnoch hund aus .. ohne umleitung.
lokal funktioniert alles wunderbar.... grml
 
Bei mir handelt es sich um ein Script, welches die Passwörter ändern soll. Dort arbeite ich auch mit Headern. Warum funtioniert es bei mir nicht?

PHP:
<?php
				session_start();
				if (isset($_SESSION["user_id"]))
				{
					if (isset($_POST["neu_pwd"]) && isset($_POST["neu_pwd_wdh"]) && isset($_POST["alt_pwd"]))
					{
						if ($_POST["neu_pwd"] == $_POST["neu_pwd_wdh"])
						{
							$datei="user/user.txt";
							$modus="w";
							
							$nr=$_SESSION["user_id"];
							
							$zeilen=file($datei);
							
							$daten=explode("|*|", $zeilen[$nr]);
							
							if ($daten[3] == md5($_POST["alt_pwd"]))
							{
								$db="user/user.txt";
								$inhalt=file($db);
								$zeilenzahl=count($inhalt);
								$n=$_SESSION["user_id"];
								
								$datenalt=explode("|*|", $inhalt[$n]);
								
								$neudaten[0]=$datenalt[0];
								$neudaten[1]=$datenalt[1];
								$neudaten[2]=md5($_POST["neu_pwd"]);
								$neudaten[3]=$datenalt[3];
								$neudaten[4]=$datenalt[4];
									
								$neuzeile= implode("|*|", $neudaten);
								
								for ($x = 0 ; $x < $zeilenzahl; $x++)
								{
									$altzeile=$inhalt[$nr];
									$inhalt[$nr]= str_replace("$altzeile", "$neuzeile", $inhalt[$nr]);
									
								}
								
								
								$eintragen=fopen($db, "w");
								
								for ($zi = 0; $zi < $zeilenzahl; $zi++)
								{
									fputs($eintragen, $inhalt[$zi]);
								}
								fclose($eintragen);
								
								$ausgabe="Das Passwort wurde ge&auml;ndert.";
								header("Location: /index.php?datei=change_pw&pfad=user&meldung=$ausgabe");
							}
							else
							{
								$ausgabe= "Das eingegebene (Best&auml;tigungs-)Passwort ist inkorrekt!";
								header("Location: /index.php?datei=change_pw&pfad=user&meldung=$ausgabe");
							}	
						}
						else
						{
							$ausgabe="Die neuen Passwörter stimmen nicht &uuml;berein.";
							header("Location: /index.php?datei=change_pw&pfad=user&meldung=$ausgabe");
						}
					}
					else
					{
					$ausgabe="Bitte alle Felder ausf&uuml;llen!";
					header("Location: /index.php?datei=change_pw&pfad=user&meldung=$ausgabe");
					}
				}
				else
				{
					header ("Location: /index.php?datei=intern&pfad=user");
				}
				
				
				?>

Versteh nicht warum es nicht funtioniert, obwohl es an anderen Stellen schon funtioniert (i n anderen Scripten).
 
Zuletzt bearbeitet:
Schau mal ganz genau, ob Du nicht doch irgendwo etwas vorher schon ausgibst.

Ich hatte es mal in etwa so:

<html krams>
<?
PHP Code mit Header ohne weitere Ausgabe
?>
< weiterer HTML Krams >

Dabei hatte ich im PHP Code eine Datei includet welche eigentlich reinen HTML Inhalt ausgegeben wurde und <? #test ?> enthielt.

Und genau das hat die Probleme verursacht.
 
Der PHP- Code steht absolut über dem HTML- Code.
Das <? kommt der 1. Zeile gleich.

Und wie du siehst wird vorher auch nichts ausgegeben.

Ich versteh es ja selber nicht.
 
Zurück