Archivlink: javarea.de Forum > PHP, MySQL & CGI > Problem mit auto_prepend_file
Vollständigen Link anzeigen: javarea.de Forum > PHP, MySQL & CGI > Problem mit auto_prepend_file
Pages: [1]
| geschrieben von H3LLFIRE am 07.11.2009 - 10:37 |
Hi,
habe auf meiner Seite via php.ini eingebaut, dass bei jedem Seitenzugriff automatisch eine html-datei eingebunden wird, in der ein Layerad steckt!
Mein Problem ist jetzt, damit wenn ich meine Seite aufrufe, damit der header ja bereits von auto_prepend_file gesendet wurde in der html-datei, und der header von der eigentlichen index.php kann somit nichtmehr ausgewertet werden, und ich bekomme immer folgenden Fehler:
| Zitat | | | Warning: Cannot modify header information - headers already sent by ... |
kennt jemand eine Möglichkeit, die so hinzubekommen, damit ich diesen Fehler nichtmehr bekomme, aber trotzdem die Seite immer eingebunden wird, und der Layer erscheint?
mfG
H3LLF!RE
P.S.: Bitte nicht die Antwort bringen, damit ich in jeder Datei einfach ein include oder require einbauen könnte ;) |
| geschrieben von Danny am 07.11.2009 - 13:46 |
Hallo,
finde es zwar ungewöhnlich soetwas über die php.ini zu regeln aber ok, du wirst deine Gründe haben 
Grundsätzlich ist es so das header Informationen nicht gesendet werden können, wenn vorher schon Inhalt ausgegeben wurde.
Ich weiß nun nicht wie dein Layerad aussieht, aber wenn es unabhängig ist ob dieser vor der eigentlichen Seite oder danach eingebunden wird könntest du einfach auf auto_append_file ausweichen.
Andere Lösung wäre am Anfang, also noch vor irgendeiner Ausgabe, die Funktion ob_start() aufzurufen. Die veranlasst, dass alle Ausgaben gepuffert und erst zum Schluss ausgegeben werden. Somit kannst du Ausgaben und Headerangaben im sequentiellen Ablauf "mischen".
Gruß Danny
|
| geschrieben von H3LLFIRE am 10.11.2009 - 22:53 |
hi,
also wenn ich richtig informiert bin, dann kann aber auto_prepend_file nur html-dateien einbinden oder nicht?...
und in html-dateien ist es ja nicht möglich ob_start(); zu benutzen oder bin ich jetzt falsch?
mfG
H3LLF!RE |
| geschrieben von Danny am 10.11.2009 - 23:02 |
Selbst hab ich auto_prepend_file noch nicht genutzt, aber in der Dokumentation steht es so erklärt
| Zitat | | | [...]Die Datei wird in die aufgerufene Datei eingebettet, als wenn Sie sie mittels der require() Funktion eingebunden hätten [...] |
und mit require kann man schließlich auch PHP Dateien einbinden die geparsed werden.
Auch wird hier z.B. davon gesprochen das man auto_prepend_file zur Umgebungsinitialisierung verwenden kann.
http://www.dantescode.com/2007/10/1....plication/
Macht natürlich auch nur Sinn wenn man auch PHP darin nutzen kann ;)
Gruß Danny |
| geschrieben von H3LLFIRE am 10.11.2009 - 23:09 |
also, wenn ich eine php-datei einbinden möchte, dann läd der server unendlich....
bekomm garkeine anzeige....nur eine weiße Seite und in der Statusleiste wird versucht eine verbindung aufzubaun!
mfG
H3LLFIRE |
| geschrieben von Danny am 10.11.2009 - 23:18 |
Mhh also ich hab das ganze bei mir mal getestet.
index.php
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
|
<?php
header('Content-type: text/html');
echo "CONTENT";
?>
|
prepend.html
| HTML-Quelltext | 1:
| <p>PREPENDHTML</p><br> |
prepend.php
| PHP-Quelltext | 1:
2:
3:
4:
5:
6:
|
<?php
ob_start();
echo "PREPENDPHP<br>";
?>
|
.htaccess
| HTML-Quelltext | 1:
| php_value auto_prepend_file /var/www/absoluter_pfad/prepend.php |
Hat wunderbar geklappt. Muss also gehen. Was sagt das Apache Error Log ? Bzw geht so ein einfaches Testszenario bei dir ? |
| geschrieben von H3LLFIRE am 10.11.2009 - 23:26 |
omg.....
natürlich gehts, bitte schlag mich 
hatte anstatt den pfad auf dem server schon den verarbeiteten pfad angegeben.....
sprich domain.tld/datei.php anstatt var/www/datei.php ....
Vielen herzlichen Dank
mfG
H3LLF!RE |
|