Hilfe - Suche - Mitglieder - Kalender
Vollansicht: Contentflex Parse Error beim Einsatz von {if_Element:x}
Forum Sefrengo.org > Allgemeine Foren > Anwenderforum
pinda
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
wabue
Hallo zusammen

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

Grüsse
Wabü
pinda
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
Hr.Rossi
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
pinda
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
amk
bitte mal diese version hier ausprobieren ... parse-error geschichte?! cool.gif
pinda
Hallo Alex,

besten Dank!

pinda
mvsxyz
ContentFlex v1.8.8 ist (bei einer Neuinstallation) in Sefrengo v1.4.6 enthalten.
silwue
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.
Heras
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
Heras
Der Fehler kommt, wenn 2 Sprachen eingerichtet sind.
Wie ich den Fehler beseitigen kann, weiß ich noch nicht.
Heras
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.
Dieses ist eine vereinfachte Darstellung unseres Foreninhaltes. Um die detaillierte Vollansicht mit Formatierung und Bildern zu betrachten, bitte hier klicken.
Invision Power Board © 2001-2024 Invision Power Services, Inc.