PHP-Code in Module-templates

Gesperrt
prepress89
Beiträge: 91
Registriert: Mi 8. Jul 2009, 09:18
Kontaktdaten:

PHP-Code in Module-templates

Beitrag von prepress89 »

Hallo Community,

ich bin gerade dabei das Kontaktformular für einen Kunden individueller zu programmieren. Heißt ich möchte über einen Link zum Kontaktformulare bereits Varibalen mit übergeben. Ich glaube ich habe die Lösung schon gefunden, allerdings stehe ich trtozdem vor einem Problem: Ich habe das gefühl dass eingebaute PHP-Code-Schnipsel im Template nicht funktionieren.

Code: Alles auswählen

<textarea name="Anliegen" id="Anliegen"><?php echo $_GET['info'];?></textarea>
Hier wollte ich mit...

Code: Alles auswählen

front_content.php?idcatart=40&info=Text
...vordefinierten Text - Linkspezifisch - einfügen lassen.

Ist dies evtl mit den {INFO}-Varibeln im Zusammenspiel mit der Modul-Ausgabe zu handeln?
Bin leider kein PHP-Spezialist.. :)

Vielen Dank!

Gruß alex
Faar
Beiträge: 1951
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Hat sich bedankt: 15 Mal
Kontaktdaten:

Re: PHP-Code in Module-templates

Beitrag von Faar »

Das Kontaktformular benützt ein Template und dort die Platzhalter wie z.B. {link} für Variable Inhalte.
Statt <?php echo $_GET['info'];?> würde ich dort {info} einfügen und im Kontakformular-Module dann das Programm unterbringen, das dieses {info} mit Inhalten füllt.
Dabei ist im Modul schon alles da für die Template-Verarbeitung, weil die anderen Platzhalter ja schon bestückt werden.

Nur das was in {info} rein muss, das muss man schon selbst im Modul programmieren.
Angenommen der Link enthält am Ende folgendes: ...?variable=xxx
Dann kann man eventuell mit $_GET['variable'] diese im (output)-Modul abfragen und dem Template übergeben.
Aber ich hab das mit Contenido noch nie so probiert, weiß nicht ob es klappt.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
prepress89
Beiträge: 91
Registriert: Mi 8. Jul 2009, 09:18
Kontaktdaten:

Re: PHP-Code in Module-templates

Beitrag von prepress89 »

Wenn ich nun im Template ein {INFO} eingebe, langt es dann wenn ich - wie bei allen anderen "Formularnamen" - folgendes beim Modulcode hinzufüge:

Code: Alles auswählen

$tpl->set("s", "INFO", mi18n($_GET['info']));
anstatt z.B.

Code: Alles auswählen

$tpl->set("s", "INFO", mi18n(Information);
Oder hab ich es mir so zu einfach gemacht.. :D Bin leider mit PHP allgemein nicht so fit.. versuch mir immer irgendwie was durch Schnipsel zusammenzureimen..

Gruß

//edit: Wohooo, so hat es funktioniert!!! :))
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: PHP-Code in Module-templates

Beitrag von Spider IT »

prepress89 hat geschrieben:

Code: Alles auswählen

$tpl->set("s", "INFO", mi18n($_GET['info']));
Nimm noch das mi18n raus, das ist für Modulübersetzungen:

Code: Alles auswählen

$tpl->set("s", "INFO", $_GET['info']);
Gruß
René
prepress89
Beiträge: 91
Registriert: Mi 8. Jul 2009, 09:18
Kontaktdaten:

Re: PHP-Code in Module-templates

Beitrag von prepress89 »

Hab ich, danke! Wars ja doch nicht so schwer. :)
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: PHP-Code in Module-templates

Beitrag von xmurrix »

Für was wird der Wert in

Code: Alles auswählen

$_GET['info']
verwendet?

Man sollte nicht einfach Werte, die von außen übergeben werden, ohne vorherige Prüfung übernehmen. Mach wenigstens ein

Code: Alles auswählen

$info = filter_input(INPUT_GET, 'info', FILTER_SANITIZE_SPECIAL_CHARS);
$tpl->set("s", "INFO", $info);
um sicherzustellen, dass kein ungewünscher Inhalt ausgegeben wird...

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Spider IT
Beiträge: 1416
Registriert: Fr 3. Dez 2004, 10:15

Re: PHP-Code in Module-templates

Beitrag von Spider IT »

Das halte ich für überflüssig beim zurückschreiben ins input-Feld.
Später, bei der Verarbeitung, kann man das machen.

Gruß
René
dominik.ziegler
Beiträge: 437
Registriert: Do 19. Jun 2008, 09:09

Re: PHP-Code in Module-templates

Beitrag von dominik.ziegler »

Insbesondere auch bei einer Ausgabe des Wertes im Frontend / Web sollten diese geprüft werden, bevor sie ausgeliefert werden. Auf diese Weise kann man sich auch Sicherheitslücken in das System einschleusen!
Überflüssig ist das also ganz bestimmt nicht!
Viele Grüße
Dominik
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: PHP-Code in Module-templates

Beitrag von Oldperl »

Hallo,

stimme Dominik zu, GET, POST oder REQUEST sollten grundsätzlich vor der Verarbeitung geprüft werden. Egal ist für mich dabei ob man sie direkt wieder ausgibt oder z.B. zur Weiterverarbeitung in der DB nutzt. Egal wo, es stellt IMO einen potenzielle Sicherheitslücke dar sie nicht zu prüfen.

Gruß aus Franken

Ortwin
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Gesperrt