Problem mit header()
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
art
aufrufen
beschreibung
code
datei
folgende ausgabe
funktion
funktionieren
header
index
lokalen rechner
nasenbluten
output
server
suchbegriff
suche
tun
type
url
vertrauen
-
Hallo,
Ich habe eine PHP Datei, auf welcher man mit header() zu einer anderen Seite weitergeleitet werden soll. Auf meinem WAMP-Server tut das auch bestens, auf dem Lima-City Server kommt allerdings folgende Ausgabe:
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/fabian-riedel/html/JS/includes/suche.php:3) in /home/webpages/lima-city/fabian-riedel/html/JS/includes/suche.php on line 10
Hier die PHP Datei:
<div style="padding-top: 90px; padding-left: 700px;"> <form name="suche" method="post" action="includes/suche.php"> <input value="<?php if ($_POST){ echo $beschreibung; } else{ echo "Suchbegriff";} ?>" class="input" name="beschreibung" type="text"> <input name="suchen" class="input" style="padding: 2px;" type="submit" value="Suchen"> </form> </div> <?php if ($_POST) { $suchbegriff = $_POST['beschreibung']; header("Location: ../index.php?site=suche&suchbegriff=" . $suchbegriff . "&beschreibung"); } ?>
warum funktioniert das auf dem Lima-City Server nicht?
Grüßle Fabi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also normalerweise dürfte das auch aud deinem lokalen Rechner nicht funktionieren:
http://php.net/manual/de/function.header.php
Dort steht:
Beachten Sie, dass Sie die Funktion header() aufrufen müssen, bevor Sie irgendeine andere Art von Ausgabe (seien es normale HTML-Tags, Leerzeilen in einer Datei oder von PHP) zum Client schicken
-
Und, ganz unabhängig vom Fehler, das was du da machst ist wirklich sehr unsicher. Gewöhne dir an auf Formulareingaben nur über $_POST['name'] zuzugreifen, register_globals ist eine große Sicherheitslücke.
Zudem, du integrierst eine Usereingabe direkt in deinen Header. Du kannst schnell Opfer einer Header-Injection werden (auch wenn PHP dich davor schützen sollte, solltest du nicht darauf vertrauen.) -
@fabian-riedel
Warning: Cannot modify header information - headers already sent by (output started at /home/webpages/lima-city/fabian-riedel/html/JS/includes/suche.php:3) in /home/webpages/lima-city/fabian-riedel/html/JS/includes/suche.php on line 10
die lösung heißt 'output buffering' -> php.net. also alles was mit ob_start() &co. zu tun hat. dann geht es.
also du fängt die datei so an:
<?php error_reporting (E_ALL); ob_start (); // und so weiter; // und dann kanst headers ausgeben bis zum nasenbluten ... ?>
ja und hör augf nikic und verwende post! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage