Zum Inhalt springen

Typo und PHP 4.3

Erstellt am 11. Januar 2003 · 2 Antworten · letzte Antwort am 13. Januar 2003

Tags: Frage

agraf ·

Ich hab heut auf PHP 4.3 (typo3.5 unter linux) upgedatet und hatte immer ne fehlermeldung, wie

Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead. in /home/www/html/tslib/class.tslib_fe.php on line 1335

und daraus resultierend:

Warning: session_register() [function.session-register]: Cannot send session cache limiter - headers already sent (output started at /home/www/html/tslib/class.tslib_fe.php:1335) in /home/www/html/typo3conf/ext/de_phpot/res1/phpot/src/class.tx_dephpot_phpOpenTracker.php on line 87

Ich hab jetzt ne Lösung dazu gefunden:

Man ändert in der class.tslib_fe.php die zeilen 1335 bis 1338 wie folgt ab:

vorher:

setlocale("LC_COLLATE",$this->config["config"]["locale_all"]);
setlocale("LC_CTYPE",$this->config["config"]["locale_all"]);
setlocale("LC_MONETARY",$this->config["config"]["locale_all"]);
setlocale("LC_TIME",$this->config["config"]["locale_all"]);

nachher:

setlocale(LC_COLLATE,$this->config["config"]["locale_all"]);
setlocale(LC_CTYPE,$this->config["config"]["locale_all"]);
setlocale(LC_MONETARY,$this->config["config"]["locale_all"]);
setlocale(LC_TIME,$this->config["config"]["locale_all"]);

Damit sollte es wieder laufen. Ob es noch weitere Probleme mit PHP 4.3 gibt, muss ich noch austesten...

ups, hab schon was gefunden: mein "Sysinfo" funktioniert nicht mehr (Fehlermeldung: Cannot redeclare ts_tmplparts_rte() in /home/www/html/typo3/t3lib/class.t3lib_parsehtml_proc.php on line 1025)
Dies betrifft leider auch den Extension Manager... 🙁

Ergänzung: ich hab zwar jetzt ne lösung dafür gefunden (beim typo3toaster schwerin), aber nur so, dass die Fehlermeldung nicht mehr angezeigt wird. Es handelt sich um eine Funktion, die 2x mit dem gleichen Namen in der /typo3/t3lib/class.t3lib_parsehtml_proc.php enthalten ist. die funktion heisst "function TS_tmplParts_rte" (ab Zeile 1000) . Ich habe die 2. vorerst einfach umbenannt in "function TS_tmplParts_rte2". Ich weiss auch, dass das keine Lösung ist, aber zumindest krieg ich keine fehlermeldung und meine funktionen scheinen trotzdem zu laufen...

Was mich allerdings wundert: ich hab typo3 unter windows xp auch mit php 4.3 laufen, aber dort krieg ich keine der in diesem artikel beschriebenen fehlermeldungen... Der Unterschied zu meinem Linuxserver ist, dass ich unter Windows Apache 2.0.43 nutze. Mich wundert nur, dass diese doppelte funktionsbeschreibung keine fehlermeldungen z.b. unter php 4.2.2 (linux)verursacht hat... Würde gern zu diesem Thema ein paar Stellungnahmen hören...

Ich möchte nur noch mal betonen: ich empfehle momentan nicht auf php 4.3 umzusteigen

Roland-KS ·

Ja, den Fehler habe ich auch bei SUSE LINUX 8.0 🙂
PHP hat irgendwie die " - Codierung geändert....

Gruß Roland

MarkusHeer ·

TYPO3 und PHP 4.3 ist momentan eine Kombination, welche sich nicht besonders gut verträgt. Für alle, welche mit PHP4 keine oder nur wenig Erfahrung haben, ist davon auf jedem Fall abzuraten.

Wer allerdings mit PHP4 gut zurecht kommt, sollte die PHP 4.3 Probleme mit etwas Coden in den Griff kriegen.

Die Änderungen zur Version 4.3 können übrigens in der Change-Log nachgelesen werden http://www.php.net/ChangeLog-4.php.

Mit Apache 1.3.xx kommen die von agraf beschriebenen Fehlermeldungen bei mir auf jeden Fall vor, egal ob Linux oder Windows.

PHP 4.3 hat noch weitere interessante Eigenschaften. Das memory_limit in der php.ini hat keine Bedeutung(!?) mehr (wird mit phpinfo() auch nicht mehr angezeigt).

Das grösste Problem, auf das ich bis jetzt gestossen bin, ist das Redeclare-Problem, eine weitere, mögliche Lösung dazu gibts hier: #654.

Ein weiteres Problem unter Windows ist is_executable(). Diese Funktion (wird manchmal vom EM genutzt) ist bei PHP unter Windows nicht verfügbar und führt zu einer Fehlermeldung. Wobei ich hier nicht sicher bin, ob das schon bei älteren PHP-Versionen der Fall war, da ich den EM vor allem unter Linux verwende.

Mal kucken, was mit PHP 4.3 noch so alles für Probleme auftauchen...