Hallo,
habe in meinem Template ein Bereich, wo ein random Bild eingefügt werden soll.
Dazu habe ich den Marker ###BILD### gesetzt.
Mein Typoscript sieht so aus:
##### Random Bild
marks.BILD = PHP_SCRIPT
marks.BILD.file = fileadmin/random_bild.php
und mein PHP Code:
<?php
//Bildnummer 0 - 52
$num=rand(0,52);
echo "<style type="\"text/css\"" media="\"screen\"">";
echo "#header { background: url(\"images/header/header".$num.".jpg\") no-repeat bottom center; }";
echo "</style>";
echo "<h1 id="\"header\"" onclick="\"location.href" style="\"cursor:" pointer="">";
echo "<a href="\"$PHP_SELF\"">Mat’s :: site </a>";
echo "</h1>";
?>
Beim laden der Seite bekomme ich aber immer:
Warning: Cannot modify header information - headers already sent by (output started at /var/kunden/webs/web_1/___cms/fileadmin/random_bild.php:5) in /var/kunden/webs/web_1/___cms/tslib/class.tslib_fe.php on line 2612
Hat jemand ne Idee wie ich den Header unterdrücken kann oder das Problem anders lösen kann? Danke euch schon mal!
Mat
Ja habe ich, da ich noch ein PHP Anfänger bin, sagt mir das leider nicht soviel! Kannst du vielleicht etwas ausführlicher werden!?
Danke, Mat
Du hast aber so viel Ahnung das du weißt was "echo" in PHP bewirkt. Dann musst du eigentlich auch diesen Text verstehen:
Alle Inhalte müssen in $content geschrieben werden. Keine Ausgabe durch echo.
Entweder du änderst das in deinem Script oder schaust dir die beiden anderen Möglichkeiten an um PHP-Scripte einzubinden.
Norman
Jaja, genau hier ist mein Verständnisproblem.
Alle Inhalte müssen in $content geschrieben werden.
Heißt das alle Inhalte sollen in die Variable $content geschrieben und die dann mit print ausgegeben werden?
print $content;
Sorry, das ich mich wahrscheinlich blöd anstelle, aber ich verstehe es nunmal leider nicht.
nein, dies heisst dass du deine ausgabe einfach an eine Variable namens "$content" übergibst, die Ausgabe derselben übernimmt typo3. Konkret bedeutet dies du am besten deine html-ausgaben in einem string sammelst und am schluss übergibts, zB so:
<?php
//Bildnummer 0 - 52
$num=rand(0,52);
$mein_content="<style type="\" textcss="" media="\" screen="">";
$mein_content.="#header { background: url \"images/header/header".$num.".jpg\") no-repeat bottom center; }";
$mein_content.="</style>";
$mein_content.="<h1 id="\" header="" onclick="\" locationhref="" style="\" cursor:="" pointer="">";
$mein_content.=<a href="\" php_self="">Mat’s :: site </a>";
$mein_content.="</h1>";
//inhalt an typo3 "übergeben"
$content=$mein_content;
?>
Beste Grüße,
Wilnis
PS: Irgendwie sehen deine Stringnotierungen auch komisch aus, schreib es doch lieber so
$mein_content='<style type="" textcss="" media="" screen="">';
Danke, das hat geklappt und ich habe das jetzt verstanden! 😃
PS: Irgendwie sehen deine Stringnotierungen auch komisch aus, schreib es doch lieber so
Ja hab ich auch grad gesehen, habe das per copy und paste gemacht und irgendwie sind da Sachen verloren gegangen. Eigentlich sind zwischen den "" noch Inhalte!
Also, danke nochmal und einen schönen Abend!
ne..das meinte ich nicht, ich meinte die verwendung von den Anführungszeichen. Entweder du schreibst:
Variante 1 (escaped):
$mein_content="<style type=\"\" textcss=\"\" media=\"\" screen=\"\">";
Variante 2 (gedreht):
geht auch dann hast du allerdings ' statt " im html-quelltext
$mein_content="<style type='' textcss='' media='' screen=''>";
am sauberstersten ist (mein persönlicher geschmack):
$mein_content='<style type="" textcss="" media="" screen="">';
dann hast du " im html-quelltext und dein php-quelltext lässt sich besser lesen, ist aber wie gesagt geschmackssache. Das bei deinen akutuellen Notationen à la:
echo "<style type="\"text/css\"" media="\"screen\"">";
der Parser keinen Fehler auswirft ist Glück bzw. Zufall bzw. wundert mich :o
Beste Grüße,
Wilnis
Werde mir mal deine 3. Variante angewöhnen, die gefällt mir so auch am besten!
Danke! Mat