Zum Inhalt springen

PHP Script einbauen, aber wie?

Erstellt am 13. November 2009 · 13 Antworten · letzte Antwort am 15. November 2009

Tags: Frage

andre-ne ·

Hallo!

Ich möchte das folgende von mir geschriebene PHP Script in meine Typo3 Seite einbauen. Wie ich schon beim suchen im WWW erfahren habe kann ich es nicht direkt ins Template einbauen, sondern muss es mit TypoScript aufrufen und dann einfügen lassen, jedoch weiß ich nicht genau wie dies funktioniert, da ich noch ein blutiger Anfänger bin in Sachen TypoScript.

Mein TypoScript sieht wie folgt aus:

page = PAGE
page {
typeNum = 0

10 = TEMPLATE
10.template = FILE
10.template.file = fileadmin/template.html
10.workOnSubpart = BEREICH

10.marks.COPY = TEXT
10.marks.COPY.value = © 2003 - 2009

10.marks.CONTENT = CONTENT
10.marks.CONTENT {
table = tt_content
select.orderBy = sorting
select.where = colPos = 0
}
}

Wo muss ich dort nun und vor allem was muss ich für ein TypoScript Code einfügen?

Hier auch noch einmal mein PHP Script, welches im Verzeichnis "fileadmin/scripte/header.php" abgespeichert habe.

<?php
$stunde = date('G');
if($stunde <= 20 && $stunde >= 8-)
{$bild = 'fileadmin/images/header_night.jpg';}
else
{$bild = 'fileadmin/images/header_day.jpg';}
echo '<img src="'.$bild.'">';
?>

Bitte vergesst auch nicht mir zuschreiben was ich in meinem Template dann noch einfügen muss an die Stelle wo das PHP Script auftauchen bzw. sein Zweck erfüllen soll.

Gruß
André

alphaonline ·

Hallo andre-ne,

ist eigentlich ganz einfach:

an der Stelle, wo Dein Script greifen soll, im Template einen Marker setzen; z.B.: ###SCRIPT###
(ich nenne ihn mal SCRIPT)

und dann im Template-Setup:

10.marks.SCRIPT = PHP_SCRIPT
10.marks.SCRIPT.file = fileadmin/scripte/header.php

VG alphaonline

andre-ne ·

Danke für die schnell Antwort.
Ich habe es genau so eingesetzt wie du es gesagt hast und habe die Variable SCRIPT und das Verzeichnis noch angepasst. Leider bekomme ich beim Aufrufen der Seite eine Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web32/html/fan/typo3/fileadmin/fan/scripte/header.php:7) in /var/www/web32/html/fan/typo3/typo3/sysext/cms/tslib/class.tslib_fe.php on line 3229

Hinzu kommt noch, dass im Browser dann alles verschoben wird.
Hier ein Bild wie es dann aussieht:

Bild: leakz.org/…/Bildschirmfoto-2009-11-14-um-15.03.51.jpg

Woran liegt es?

Gruß
André

alphaonline ·

Steht doch da:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web32/html/fan/typo3/fileadmin/fan/scripte/header.php:7)

Dein php-Script "header.php" erzeugt Informationen, die TYPO3 auch erzeugen will und somit kollidieren die beiden miteinander.
Das kann mehrere Ursachen haben: Dein Script beutzt Sessions, Du hast am Anfang ein Leerzeichen oder versucht selbst in die Datenbank zu connecten - was TYPO3 eigentlich machen will.

Also: Bevor ich meine Glaskugel anwerfe - Poste mal Dein Script !

Und:

Hinzu kommt noch, dass im Browser dann alles verschoben wird.
Hier ein Bild wie es dann aussieht:

Das liegt daran, dass die o.g. Fehlermeldung Dein Layout zerlegt.

VG alphaonline

andre-ne ·

Hier ist noch einmal mein PHP Script, welches sich auch genau so in der datei "header.php" befindet:

<?php
$stunde = date('G');
if($stunde <= 20 && $stunde >= 8-)
{$bild = 'fileadmin/images/header_night.jpg';}
else
{$bild = 'fileadmin/images/header_day.jpg';}
echo '<img src="'.$bild.'">';
?>

alphaonline ·

Hallo einpraegsam.net,

vermutlich 'ne blöde Frage:
Warum nicht mit "echo" - funzt bei mir problemlos !

Gibt's da Sicherheitsbedenken ??

VG alphaonline

einpraegsam.​net ·
alphaonline schrieb

Warum nicht mit "echo" - funzt bei mir problemlos !

Gibt's da Sicherheitsbedenken ?

Keine Sicherheitsbedenken, aber wenn du ein Script an einem Marker oder Subpart ausgeben willst und nicht über der kompletten Seite mit PHP Warnings, dann lieber kein Echo...

alphaonline ·

OK, werde ich testen & beherzigen.

Was mich dabei aber wundert - ich programmiere meine Scripte seit langem mit "echo", ohne dass ich Fehlermeldungen bekommen.
Und ich habe die Ausgabe von Scriptfehlern nie unterdrückt ...

Aber nun ja, Hauptsache das Problem von andre-ne ist gelöst 😃

Hans1 ·

Hallo,

der Header-Fehler kommt, wenn Typo3 Header-Infos setzen will, aber bereits eine Ausgabe stattgefunden hat. Deshalb auch kein echo verwenden.

So wäre meine Intension (und auch in PHP-Code außerhalb von Typo3 das übliche).

Viele Grüße, Hansi