Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 23. Oktober 2012 17:56

simonson
kennt CMS/ms
Ort: Wien
Registriert: 07. März 2012
Beiträge: 192

[GELÖST] PHP in globalen Inhaltsblöcken

Hallo Gemeinde,
beim Versuch in einem globalen Inhaltsblock php-Schnipsel mit
include oder readfile aufzurufen, scheint nur der Quelltext am
Bildschirm auf, obwohl ich Befehle ordnungsgemäß mit {php}..{/php}
eingeschlossen habe.
Weiß jemand, was ich hier falsch mache?
Danke vorab!


mfg
simonson

CMSMS 1.12     Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1

Offline

#2 24. Oktober 2012 22:49

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Damit das funktioniert, musst du dies ausdrücklich in der config.php freigeben (ist standardmäßig aus Sicherheitsgründen false). Sollte eigentlich auch in dem Reference-Doc drin stehen ...

Offline

#3 24. Oktober 2012 23:16

simonson
kennt CMS/ms
Ort: Wien
Registriert: 07. März 2012
Beiträge: 192

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Danke - aber beim editieren der config.php finde ich kein item, dass auf Freigabe/Nichtfreigabe
hindeutet.
Reference-Doc ist bitte wo?


mfg
simonson

CMSMS 1.12     Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1

Offline

#4 24. Oktober 2012 23:24

simonson
kennt CMS/ms
Ort: Wien
Registriert: 07. März 2012
Beiträge: 192

Re: [GELÖST] PHP in globalen Inhaltsblöcken

doc gefunden - Lösung noch nicht ;-)


mfg
simonson

CMSMS 1.12     Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1

Offline

#5 24. Oktober 2012 07:06

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Ich glaube mich dunkel erinnern zu können, dass die Setting mal

[== config.php ==]
$config['use_smarty_php_tags'] = false;

war.

Alle Angaben sind wie immer ohne Gewähr...  big_smile

Offline

#6 24. Oktober 2012 12:57

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Das Dokument nennt sich konkret CMSMS_config_reference.pdf und ist im Verzeichnis /doc zu finden.

rage_all schrieb:

Ich glaube mich dunkel erinnern zu können, dass die Setting mal

[== config.php ==]
$config['use_smarty_php_tags'] = false;

war.

Alle Angaben sind wie immer ohne Gewähr...  big_smile

Gute Erinnerung wink ... genau ins Schwarze. Die Erklärung findet sich aktuell auf Seite 9

CMSMS_config_reference.pdf schrieb:

Indicate whether smarty {php} tags should be allowed in templates.
This is an advanced option which should only be enabled by
experionced developers who are familiar with the potential drawbacks
to this functionality

Offline

#7 24. Oktober 2012 12:59

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Ich würde stattdessen eher ein Plugin oder UDT empfehlen.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#8 25. Oktober 2012 08:35

simonson
kennt CMS/ms
Ort: Wien
Registriert: 07. März 2012
Beiträge: 192

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Danke für Eure Hinweise -werde ein bissel ausprobieren.
Noch 'ne Anfängerfrage:
Wo ist das Risko bei php-Aktivierung?


mfg
simonson

CMSMS 1.12     Apache/2.4.6 (Linux/SUSE) - PHP 5.4.20 - MySQL 5.0.95 - W7 ultimate - FF 38.0.1

Offline

#9 25. Oktober 2012 10:35

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Als Nicht-Coder: Ich schätze dass weniger das mögliche Risiko hier das Problem ist, als mehr dass es eine Frage der Ästhetik ist und dem DRY-Konzept (Don't repeat yourself).

Demnach: Schreibe Dein Script (und vermutlich am Besten nur das eigentliche Script ohne HTML, etc.) in das UDT oder erstelle gleich ein Plugin, Modifier, etc. und setze die Aktion dort ein, wo Du sie einsetzen möchtest.

Ist es eine generische Aktion, von der ggf. auch andere CMSms-Admins profitieren könnten, erwäge ob Du den Code nicht teilen möchtest und - bei entsprechendem Interesse - auch von der Weiterentwicklung der anderen Coder profitieren willst (mal abgesehen von Ruhm und Ehre, und dem guten Gefühl etwas an die Community zurückgegeben zu haben).

Ein häufiger Anfängerfehler ist nämlich das nicht-teilen; dabei können wir alle nur voneinander profitieren und niemand nimmt dabei einem anderen das Brot - ganz im Gegenteil: Von tausend Usern wäre vielleicht einer in der Lage die CMSms Basisinstallation zu coden. Nur, bis das fertig ist, ist es zu teuer um es noch als Leistung verkaufen zu können. Nur durch unser aller gemeinsamer Beiträge in Form von gegenseitigem Support, Finanzen oder Code kann sich das Projekt weiterentwicklen und zukunftsfähig bleiben - wiederum zu unser aller Nutzen.

Jetzt bin ich nur gespannt ob die Coder und alten Hasen hier im Board das auch so Unterschreiben würden oder ob ich's vielleicht nicht ganz richtig sehe...

Offline

#10 26. Oktober 2012 09:41

czarnowski
kennt CMS/ms
Registriert: 18. Oktober 2012
Beiträge: 457

Re: [GELÖST] PHP in globalen Inhaltsblöcken

Für komplexe Funktionswebs ist es nicht klug {php} als default zu sperren.

Für jeden Kleinkram eine Plugin(ein UDT ist nichts anderes nur noch schlechter in der Perfomance)  zu schreiben oder ein verkapptes PHP über Smarty zu erstellen ist echter Blödsinn .

Die Performance leidet enorm wie auch die eigene Performance bei der Erstellung solcher Inhalte und damit würde eine solche Sache die man mit wenigen Zeilen PHP erledigen könnte schon mal deutlich teurer da der Zeiteinsatz größer wird (aber nicht der Nutzen).

Man sollte {php} als default auf true setzen und bei den Modulen etc. die eine Frontendeingabe von normalen Besuchern ermöglichen dort den {php} Tag sperren in dem man z.B. daraus intern dann einfach diese in nichts übersetzt, dann würde aus einem von denen eingesetzter PHP Code ein normaler nicht ausführbarer Text werden und man könnte keinen Schindluder betreiben.

Auf Webseiten in denen  keinerlei kritische Eingaben gemacht werden können ist das sowieso egal.

Offline