Weiterleitung funktioniert nicht

Arster-Boy

Erfahrenes Mitglied
Ich versuche etwas weiterzuleiten mit PHP, aber es passiert nichts:
PHP:
<html>
<head>
<style type="text/css">
body {
font: normal normal normal 20px/10px times;
color: #D7DFE5;
background-color: #0077CC;
text-align: center;
}
.caption {
font: normal normal normal 30px/10px times;
text-decoration: none;
text-align: center;
color: #D7DFE5;
}
</style>
<title>Datenbank</title>
</head>
<body>
<p class="caption" >Datenbank</p>
Datenbank wird abgefragt <b>. . .</b><br />
<br />
Weiterleitung <b>. . .</b>
<?php
$GET['inhalt'];
$inhalt = strtolower($inhalt); 

if ($inhalt == "1234") { 
header ("location: lexikon.php?suche=123"); } 

else { 
header ("location: lexikon.php?suche=none"); }
 ?>
</body>
</html>
 
Vor header() darf nichts an den Browser geschickt werden.

php.net:
PHP:
<html>
<?php
/* Dies wird einen Fehler provozieren. Beachten Sie die vorangehende Ausgabe,
 * die vor dem Aufruf von header() erzeugt wird */
header('Location: http://www.example.com/');
?>
 
Du könntest das dann zum Beispiel mit JavaScript umsetzen.

Dabei dürfte dir "document.location.href" und "window.setTimeout" weiterhelfen ;)
 
Es darf einfach nichts vor header() an den Browser gesendet werden.
Beispiel:
Falsch, da vorher was an den Browser gesendet wird, in dem beispiel "<html>"
PHP:
<html>
<?php
header("Location: example.org");
?>
Nun richtig, da vor dem Header keine Ausgabe an den Browser erfolgt.
PHP:
<?php
header("Location: example.org");
?>
Aus deinem Beispiel übernommen, würde damit nur

PHP:
<?php 
$GET['inhalt']; 
$inhalt = strtolower($inhalt);  

if ($inhalt == "1234") {  
header ("location: lexikon.php?suche=123"); }  

else {  
header ("location: lexikon.php?suche=none"); } 
 ?>
überbleiben.
Das Anzeigen von "Sie werden weitergeleitet" ist nur mit PHP nicht möglich.
Eine Möglichkeit, diese Informationstext weiter zu nutzen wäre ein Meta Refresh.
Suche mal bei Google nach "meta refresh redirect"

Grüsse!
 
Zurück