Hallo Forum,
folgende Funktionalität soll realisiert werden: Beim Absenden des Formulars soll eine XML-Datei mit Userspezifischen Daten erzeugt und mit cURL auf einen anderen Server hochgeladen werden.
XML-Datei erzeugen und cURL Upload habe ich in einer eigenen PHP-Datei realisiert und getestet. Rufe ich die Funktionen direkt aus einer einfachen PHP-Datei auf, funktioniert auch alles einwandfrei.
Probleme treten auf, wenn ich die Funktion aus der von mir geschriebenen Typo3-Extension aufrufe. Dann erhalte ich immer die Fehlermeldung: Fatal error: Call to undefined function: simplexml_load_file()
Die PHP-Datei mit den xml und cURL-Funktionen liegt im root-Verzeichnis meiner Typo3-Installation und wird mit require_once("datei.php") in die Klasse meiner Extension eingebunden. Die entsprechende Funktion wird dann mit funktionsName(); aufgerufen.
Ich kann jetzt überhautp nicht nachvollziehen, wieso PHP plötzlich die SimpleXML Funktionen nicht mehr kennen will, nur weil es aus einer Extension-Klasse heraus aufgerufen wird. Gibt es vielleicht irgendwelche Besonderheiten von Typo3, die man beachten muss, wenn man mit externen PHP-Dateien arbeitet?
Viele Grüße,
hilde
Ist das der selbe Server bzw. PHP-Version, auf dem die Datei einmal funktioniert und dann nicht ?? Simplexml setzt nämlich PHP5 voraus.
Hallo Mike,
auf dem Server sind sowohl php4 als auch php5.2.1 installiert. die externe Datei mit den XML und cURL Funktionen läuft unter php5. Standardmäßig werden PHP-Dateien aber mit 4.0 verarbeitet. Das Problem tritt nur dann auf, wenn die Funktionen aus der Extension heraus aufgerufen werden. Sonst funzt es einwandfrei. Könnte es bei der Bearbeitung einen Konflikt zwischen den beiden PHP Versionen geben?
Hilde
Hallo,
also ich würde mal alles auf php5 umstellen.
Meine Vermutung: TYPO3 läuft bei Dir mit php4 und Du bindest mit require_once eine Datei ein, die - eigentlich - mit php5 geparst wird. Vielleicht wird sie aber durch das require nur eingebunden und zusammen mit dem Rest durch php4 geschickt. Aber wie gesagt, nur eine Vermutung.
Hallo Mike,
da deine Vermutung in meinen Ohren ziemlich logisch klang, habe ich versucht, die Seite auf php5 umzustellen. Um erst mal zu testen, ob sie dann noch läuft wie vorher, habe ich eine htaccess mit folgendem inhalt im hauptverzeichnis angelegt:
AddType application/x-httpd-php4 .php3 .php4
Action application/x-httpd-php5 /cgi-sys/php5
AddType application/x-httpd-php5 .php .php5
Seitdem erhalte ich bei jedem Aufruf einer Typo3-Seite einen internen Serverfehler obwohl die Seite in meiner lokalen Testinstallation wunderbar unter php 5 läuft. Das Backend funktioniert interessanterweise noch, genauso wie einzelne externe php-files. Aber alle Seiten die über index.php aufgerufen werden (also Frontend und Install Manager) lösen den Fehler aus. Da es ein managed Server ist, habe ich leider keinen Zugriff auf die Log-Files. Hast du eine Idee, wo das Problem liegen könnte? Ich bin inzwischen völlig ratlos #angry#
hilde