Druckversion des Themas

Hier klicken um das Topic im Orginalformat anzusehen

Forum Sefrengo.org _ Anwenderforum _ Contentflex Parse Error beim Einsatz von {if_Element:x}

Geschrieben von: pinda Fri. 11. May 2012, 18:52

Liebe Liste!

Ich habe mehrere Sefrengo-Installationen bei verschiedenen Providern.

Bei Host-Europe habe ich nach einem Serverumzug das Problem, daß es im Contentflex beim Einsatz von {if_Element:x} folgenden Parse Error gibt:

CODE
Parse error: syntax error, unexpected '<' in /.../sefrengo/projekt01/cms/inc/frontend.php(257) : eval()'d code on line 771
Parse error: syntax error, unexpected '<' in /.../sefrengo/projekt01/cms/inc/backend.php(157) : eval()'d code on line 831


In backend.php und frontend.php ist das jeweils die Zeile:
"eval('?>'.$code);"

System: PHP Version 5.3.10, Suhosin Patch 0.9.10, mysql 5.5.22.

Auf einem anderen Server bei Host-Europe gibt's das Problem nicht PHP Version 5.2.17, Suhosin Patch 0.9.32.1, mysql 5.5.22.

Unterdessen ist klar, es liegt nicht an Suhosin sondern an der php-Version, denn mein XAMPP PHP 5.3 (ohne Suhosin) zeigt die selben Fehlermeldungen an.

Wer hat eine Lösung bzw. gibt es eine?

Nachtrag: Ja, was würde eine Lösung kosten?

1.000 Dank
-pinda

Geschrieben von: wabue Thu. 24. May 2012, 07:14

Hallo zusammen

Dieses Phänomen nagt auch an meinen Nerven. Ich würde mich an den Kosten beteiligen.

Grüsse
Wabü

Geschrieben von: pinda Thu. 24. May 2012, 16:46

Liebe Liste!

unterdessen habe ich den Fehler etwas näher lokalisieren können.

Er wird durch dei Zeile 1372 in backend/inc/mod.contentflex_cache.php hervorgerufen.

CODE
preg_match_all('#\{if_(.*)\}#sU',$modv['tpl_inner'],$modv['statement_elements']);


Vielleicht hilft das weiter!

-pinda

Geschrieben von: Hr.Rossi Wed. 30. May 2012, 08:45

Hallo Pinda, hallo Liste,

da bist Du ja schon fast am Ziel! Leider habe ich im Moment nicht ganz so viel Zeit, aber Du könntest noch ein paar Fakten ermitteln und dann schaffen wir das (evtl. mit Hilfe der anderen).

1.) Hast Du mal den Inhalt von $modv['tpl_inner'] ausgeben lassen? (Lass Dir das doch evtl mal in eine Datei schreiben und poste den Inhalt hier [oder schick ihn mir per Mail].)

2.) Evtl. hilft auch ein Ändern des regulären Ausdruck:
2.1) preg_match_all('#\{if_([^\}]*)\}#sU',$modv['tpl_inner'],$modv['statement_elements']);
2.2) preg_match_all('#\{if_([^\}]*)\}#',$modv['tpl_inner'],$modv['statement_elements']);


Aber Idee 2.1 könnte schon zum Ziel führen.

Soweit,
lieben Gruß,
Herr Rossi

Geschrieben von: pinda Fri. 8. June 2012, 14:48

Lieber Herr Rossi, liebe Liste,

ich war ein paar Tage in Urlaub, deswegen erst jetzt meine Reaktion.

Unterdessen habe ich den Fehler weiter eingrenzen und neu lokalisieren können.
Der Fehler, der in Zeile 1372 in backend/inc/mod.contentflex_cache.php hervorgerufen, entsteht eigentlich an anderer Stelle.

Die Meldung

QUELLTEXT
Parse error: syntax error, unexpected '<' in /.../sefrengo/projekt01/cms/inc/frontend.php(257) : eval()'d code on line 771


ensteht und verweist nur auf eine andere Fehlermeldung die von php, beginnend mit '<b>' ausgegeben wird!
Das wird sichtbar, wenn ich in backend.php ca. bei Zeiel 154 nach

// throw out side
else{

via

echo $code;
exit;

den Code direkt ausgeben lasse.

Die angezeigte Fehlermeldung lautet dann:

QUELLTEXT
Warning: addslashes() expects parameter 1 to be string, array given in ...\htdocs\sefrengo\backend\inc\inc.generate_code.php(252) : eval()'d code on line 1512


Ab hier aus komme ich aber nicht mehr alleine weiter!

Eine, nicht mehr als kaschierende, Möglichkeit, if-Kontrollstrukturen in Contentflex unter php 5.3 ohne die Anzeige von Fehlermeldungen zu verwenden besteht darin, in der index.php des Projekts das error reporting zu ändern, z.B. von

QUELLTEXT
error_reporting (E_ALL & ~E_NOTICE & ~E_DEPRECATED);
in
error_reporting (E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_WARNING);


Ein Lösung stellt das aber (für mich) natürlich nicht dar.

pinda

Geschrieben von: amk Fri. 8. June 2012, 15:46

bitte mal diese version hier ausprobieren ... parse-error geschichte?! cool.gif

 ContentFlex_v01_08_08.cmsmod ( 337.53KB ) : 82
 

Geschrieben von: pinda Fri. 15. June 2012, 15:11

Hallo Alex,

besten Dank!

pinda

Geschrieben von: mvsxyz Mon. 25. February 2013, 21:47

ContentFlex v1.8.8 ist (bei einer Neuinstallation) in Sefrengo v1.4.6 enthalten.

Geschrieben von: silwue Fri. 28. August 2015, 09:15

ZITAT(amk @ Fri. 8. June 2012, 16:46) *
bitte mal diese version hier ausprobieren ... parse-error geschichte?! cool.gif


Ich hatte das selbe Problem, also ich von PHP 5.2.x auf 5.5.x umstellte. Mit diesem Fix hat es geholfen. Besten Dank.

Geschrieben von: Heras Tue. 25. October 2016, 07:01

Auch ich habe das Problem nun zum ersten Mal.

Umgestellt wurde von PHP 5.2 auf PHP 5.6
Zuvor hatte ich es bei

Windows IE, FF, Edge
Linux FF

Nun habe ich auf PHP 5.6 umgestellt und das Problem tritt nur noch am Linux FF auf

QUELLTEXT
Parse error: syntax error, unexpected ',' in /XXXXXX//htdocs/CMS/XXXXX.de/cms/inc/frontend.php(257) : eval()'d code on line 762

(die xxx dienen nur der Unkenntlichmachung der URL)

IE = Internet Explorer
FF = Firefox

Windows wurde getestet Windows 7 Pro und Windows 10 Pro.
Linux wurde verwendet Linux Mint 18

Sefrengo 1.6.4
ContentFlex 1.8.8

Geschrieben von: Heras Mon. 7. November 2016, 10:36

Der Fehler kommt, wenn 2 Sprachen eingerichtet sind.
Wie ich den Fehler beseitigen kann, weiß ich noch nicht.

Geschrieben von: Heras Fri. 11. November 2016, 09:20

Es lag daran, dass Linux Derivate "EN" als Standard gesetzt haben.
Da diese Sprache im backend aber noch überhaupt nicht ausgearbeitet war, kam es zu einem Fehler.

Habe jetzt vorerst auch bei "EN" auf deutsche Seite weitergeleitet.

Unterstützt von Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)