Post-Variable in Smarty übergeben

Ich versuche mit 

{assign region $smarty.post.suche}}

eine Variable ($region) zu nutzen, die über die URL übergeben wurde. Das klappt aber nicht. Wo ist mein Denkfehler?

Das geht afaik nicht, da das die Template-Security-Einstellung nicht zulässt.

In den meisten Fällen ist es keine gute Idee, eine Eingabe via POST/GET im Template einfach so auszugeben. Daher auf alle Fälle den Inhalt überprüfen (sanitize/validate). (So als allgemeiner Hinweis, sollte noch jemand das Thema finden). 

Ansonsten kannst du die POST-Variable über ein Plugin abfragen und dem Template zuweisen:

https://developers.shopware.com/developers-guide/plugin-quick-start/#extending-the-template

VG

1 Like

Danke für die Antwort. Da es sich lediglich um eine Suche innerhalb des Blogs handelt, scheint mir eine besondere Verletzlichkeit nicht gegeben. Auch die Suche nach Tags wird ja über die URL übergeben (

?p=1&sFilterTags=begriff

Oder verstehe ich da etwas falsch?

Hast du vor die Variable im Template auszugeben? Sprich

{$region}

Das wäre fatal. Da könnte jemand in die URL als Parameter einfach „“ schreiben und das verbreiten. Das also auf keinen Fall machen. Besser: |escape, noch besser: gar nicht machen.

Wenn du allerdings nur vorhast, die Variabele abzufragen:

{if $region == 'fester Wert'}

sehe ich da weniger ein Problem.

 

Unabhängig davon wirst du wohl oder Übel ein Plugin brauchen um eine $_GET-Variable in das Theme zu übergeben.

 

Viele Grüße

1 Like