Ich such und such aber dieses Problem hatte irgendwie noch keiner..
PHP_SCRIPT-Einbindung ist ja nix besonderes und klappt, bei einem auf dem eigenen Server, abgelegten Script ohne Probs.
Jetzt möchte ich aber ein PHP-Script von einer externen URL einbinden was leider überhaupt nicht funkt.
Klappt:
tt_content.script = CASE
tt_content.script {
key.field = select_key
extern = PHP_SCRIPT
extern.file = fileadmin/scripts/content-extern/extern.php
}
Klappt nicht:
tt_content.script = CASE
tt_content.script {
key.field = select_key
extern = PHP_SCRIPT
extern.file = hatetepe://test.xyz.com/fileadmin/scripts/content-extern/extern.php
}
Der Hintergrund ist ein global, für mehrere Domains, gültiges Script, das ich über übergebene Parameter in der Ausgabe steuere.
Geht das überhaupt so oder muss ich ganz anders ansetzen oder bin ich komplett aufm Holzweg?
Ich bin für jede Anregung dankbar :o
Hallo Danii,
obwohl ich schon viel mit PHP gemacht habe, weiß ich nicht, wie und ob PHP-Dateien von externen URLs eingebunden werden können.
Für interne ( und evtl auch externe ) gibt es folgende 2 Möglichkeiten:
1. Ein Zwischenskript
Du bindest eine PHP-Datei ein wie gewohnt, ABER
diese macht nichts anderes als einen include/require auf die eigentliche Datei.
Berücksichtige hierbei aber, das der output in der $content-Variable stehen muss, damit
er auch an der richtigen Stelle der Seite eingebunden wird.
2. Alias-ing / Symlinks
Wenn du etwas mehr Kontrolle über deinen Webserver hast, kannst du einen Alias in der apache/httpd-Konfiguration
eintragen. Damit kannst du ein Verzeichnis ausserhalb des Werbserver definieren, das für alle Webserver erreichbar ist ( muss per
Symlink verlinkt werden ). Also das mit dem Symlink ist auf jeden Fall erforderlichm bei dem Alias bin ich mir grade leider nicht mehr ganz
sicher, das hat damals mein Server-Betreuer gemacht.
Hoffe das hilf dir weiter, option 1 sollte aber auf jeden Fall machbar sein.
P.S.:
PHP-Skripte kannst du noch besser per
USER_INT
einbinden, dann kannst du auch Parameter übergeben, falls das erforderlich sein sollte.
hi Chrissli,
mit PHP_SCRIPT kann ich auch Parameter übergeben. einfach in den Datensatz die erforderlichen eingeben. In meinem Fall ist es zum Test eine popelige if-Abfrage die auf die Parameter reagiert.
thema1=1
thema2=
thema3 = 1
thema4=1
im Script lese ich die Parameter wieder aus:
$parameters = $this->cObj->data["bodytext"];
$params = $this->cObj->processParams($parameters);
$thema1 = $params['thema1'];
$thema2 = $params['thema2'];
$thema3 = $params['thema3'];
$thema4 = $params['thema4'];
If($thema1) {
$content .= "bla";
)
// usw.
Das funkt natürlich nur wenn das Script lokal liegt. Mir fehlt der Ansatz wenn das File extern liegt. Also wie oben im Beispiel "Klappt nicht"
Da hab ich grad den Denkknopf drinne
Klappt nicht wenn das File auf einem anderen Server liegt
tt_content.script = CASE
tt_content.script {
key.field = select_key
extern = PHP_SCRIPT
extern.file = hatetepe://test.xyz.com/fileadmin/scripts/content-extern/extern.php
}
Grundsätzlich lässt sich das includen von PHP von extern in der php.ini (de-)aktivieren, ist aber generell keine soo super Idee. Ich vermute (ohne jetzt im Core zu gucken), dass das von TYPO3 nicht erlaubt ist, kannst du nicht die Ausgabe von dem Script einfach nehmen? Das ist ja was anderes als den Code zu includen... Dafür müsstest du dir dann einen kleines wrapper Script bauen, das auf dem TYPO3 Server ausgeführt wird und die Parameter übergibt.
Wie gesagt, mach eine PHP-Datei im fileadmin die die PHP-Datei ausserhalb deines Webservers includiert:
extern = PHP_SCRIPT
extern.file = fileadmin/von_hinten_durch_den_ruecken_ins_auge.php
Inhalt von von_hinten_durch_den_ruecken_ins_auge.php:
<?php
include 'hatetepe://test.xyz.com/fileadmin/scripts/content-extern/extern.php'
?>
Ob ein include aus einer externen URL machbar ist, ist eine andere Sache...