![]() |
[PHP] headers already sent by
Ich habe ein kleines Koordinationspronblem.
Code:
Logisch, was passiert. Wenn das Verzeichnis nicht existiert, soll ein 404 gesendet werden. Allerdings ist zu dem Zeitpunkt der eigentliche Header ja schon verschickt worden.
function getURLParams(){
$params = $_GET['dir']; if (!isset ($params)) $params = "./"; if (!file_exists($params)){ header("HTTP/1.0 404 Not Found"); die(); } return $params; } ?> <html> <body> <?php $dir = getURLParams(); Wie kann man das am geschicktesten lösen? |
Re: [PHP] headers already sent by
Code:
Edith: Das wäre eine Möglichkeit. Geschickt wäre natürlich ein Template-System.
function getURLParams(){
$params = $_GET['dir']; if (!isset ($params)) $params = "./"; if (!file_exists($params)){ header("HTTP/1.0 404 Not Found"); die(); } return $params; } $dir = getURLParams(); ?> <html> <body> <?php // Was mit $dir anstellen |
Re: [PHP] headers already sent by
Oh, ich wusste nicht, dass die Stelle schon vorher abgearbeitet wird. Danke, so funktioniert es.
|
Re: [PHP] headers already sent by
Das Problem tritt dann auf, sobald du die erste Ausgabe machst.
Da reicht sogar schon ein Leerzeichen oder Zeilenumbruch. Umgehen kann man das durch keine Ausgaben vorher machen oder alternativ kann auch das Outputcaching angeschaltet werden. ob_* Funktionen |
Re: [PHP] headers already sent by
Besser ists aber, wie MuhKuh erwähnt hat, mit Templates zu arbeiten. Ich nutze zurzeit das Yii-Framework und das zeigt das hervorragend. Kann bei Bedarf gerne Code liefern, wenn dies gewünscht :) Hab diese Technik mal für ein kleines Projekt abgekupfert und Layout vom Content getrennt. Content liegt bei mit teilweise auch in HTML vor und wird dann in eine Variable geladen, dann ins Template eingesetzt.
// edit Hätte ich ein wenig mehr darüber nachgedacht, so hätte ich bemerkt, dass das genau die Technik ist, die generic hier anmerkt :wall: |
Re: [PHP] headers already sent by
Ich glaube, es hat sich erledigt. Ich werde wohl doch bei meinen Apache DirectoryListings bleiben. Außerdem wäre mir ein Templatesystem zu viel Overhead, denke ich.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz