Bug in functions.php (CMSimple_XH 1.7.1)

A place to report and discuss bugs - please mention CMSimple-version, server, platform and browser version
Post Reply
todde
Posts: 11
Joined: Sun Oct 15, 2017 11:33 am

Bug in functions.php (CMSimple_XH 1.7.1)

Post by todde » Fri Nov 17, 2017 11:23 pm

Hallo!

Ich habe einen merkwürdigen Bug entdeckt, der mit der aktuellen Version 1.7.1 unter PHP 5.3 und 5.4 nicht auftritt, dafür aber unter PHP 5.6 (und mögolicherweise höher):

Ruft man hier seine CMS-Website (mit eingeschaltetem PHP-Error-Reporting) auf, erscheint dort folgende Meldung:

Parse error: syntax error, unexpected '[' in /home/cmsimple_xh/cmsimple/functions.php on line 1299

Ursache sind hier die eckigen Klammern bei:

Code: Select all

if (in_array($errno, [E_USER_ERROR, E_RECOVERABLE_ERROR])) {
Das gefällt PHP offenbar nicht. Eine Änderung in:

Code: Select all

if (in_array($errno, array(E_USER_ERROR, E_RECOVERABLE_ERROR))) {
behebt das Problem. Oder sollte man das möglicherfweise anders korrigieren?

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: Bug in functions.php (CMSimple_XH 1.7.1)

Post by cmb » Sat Nov 18, 2017 10:40 am

todde wrote:Parse error: syntax error, unexpected '[' in /home/cmsimple_xh/cmsimple/functions.php on line 1299
Danke für den Report. Das Problem ist bekannt, und wurde im Repo bereits behoben (wird also mit CMSimple_XH 1.7.2) veröffentlicht werden.
todde wrote:Ich habe einen merkwürdigen Bug entdeckt, der mit der aktuellen Version 1.7.1 unter PHP 5.3 und 5.4 nicht auftritt, dafür aber unter PHP 5.6 (und mögolicherweise höher):
Nun bin ich aber verwirrt. [] statt array() ist erst seit PHP 5.4.0 erlaubt, müsste also nur unter PHP 5.3 (und älter, was ja sowieso nicht mehr unterstützt wird) einen Parse-Error auslösen, siehe https://3v4l.org/Bj3sU.
Christoph M. Becker – Plugins for CMSimple_XH

todde
Posts: 11
Joined: Sun Oct 15, 2017 11:33 am

Re: Bug in functions.php (CMSimple_XH 1.7.1)

Post by todde » Tue Jan 02, 2018 9:27 pm

Hallo!

Prima, das Problem ist ja inzwischen mit Vesion 1.7.2 gefixt.
cmb wrote: Nun bin ich aber verwirrt. [] statt array() ist erst seit PHP 5.4.0 erlaubt, müsste also nur unter PHP 5.3 (und älter, was ja sowieso nicht mehr unterstützt wird) einen Parse-Error auslösen, siehe https://3v4l.org/Bj3sU.
Hm, merkwürdig. Ich hatte bis vor einigen Monaten noch mit Vertigo Server 2.30 gearbeitet (sowas wie XAMPP, aktuell ist 2.47) und das hat mir noch PHP 5.3.x angezeigt, da hat dieser Trick mit "array(<KONSTANTE>)" geholfen. Möglicherweise ist nur "array()" (also ganz ohne Konstante) erst ab PHP 5.4 erlaubt. Egal, jetzt funktioniert's jedenfalls :).

Viele Grüße
Todde

Post Reply