Veröffentlicht am
Auf Webservern mit PHP 5.3 bricht die Extension "sr_feuser_register" immer mit folgender Fehlermeldung ab:
PHP : mktime() [function.mktime]: The is_dst parameter is deprecated
in ...\typo3conf\ext\sr_feuser_register\pi1\class.tx_srfeuserregister_pi1_adodb_time.php
line 595
Der Fehler bleibt bestehen, auch wenn man mittels "$TYPO3_CONF_VARS['SYS']['exceptionalErrors']" sein TYPO3 an das bei PHP 5.3 veränderte Fehlerreporting angepasst hat.
Abhilfe
Um das Problem zu beseitigen, muss man einfach in der genannten Datei (class.tx_srfeuserregister_pi1_adodb_time.php) die Zeile 595 wie folgt austauschen:
Alt:
$TZ = mktime(0,0,0,1,2,1970,0) - gmmktime(0,0,0,1,2,1970,0);
Neu:
$TZ = mktime(0,0,0,1,2,1970) - gmmktime(0,0,0,1,2,1970);
Fertig.
Der in der ursprünglichen Version vorhandene 7. Parameter bei beiden Funktionen betrifft das Handling der Sommerzeit (is_dst, dst = daylight saving time) und gilt seit PHP 5.1 als veraltet. Ab PHP 5.3 haben Warnhinweise bei der Verwendung von veralteten (deprecated) einen anderen Fehlercode und führen im TYPO3 zu einem Abbruch. Durch die veränderte Zeile wird mktime nicht mehr mit dem veralteten Parameter aufgerufen, TYPO3 läuft problemlos weiter.
Anpassungen in der php.ini o.ä. sind bei diesem Problem nicht nötig, da die betroffene Zeile ohnehin nur die Differenz zur GMT-Zeit (Zeitzonen-Offset) berechnet.
Die Änderung im Quellcode der Extension ist hinsichtlich Updates unkritisch, da sich am Verhalten nichts ändert und die betroffene Zeile in zukünftigen Versionen dieser Extension ohnehin korrigiert sein wird.