Zum Hauptinhalt springen
Manchmal braucht ein Template eine Angabe, die der Shop von sich aus nicht kennt: eine Kampagnenkennung aus der URL, ein Merkmal aus einem Cookie, das ein Drittsystem gesetzt hat. Für diesen Fall gibt es zwei Tag-Gruppen, die beide nach demselben Muster arbeiten. CheckURLParam- liest einen beliebigen Parameter aus der aufgerufenen Adresse, CheckCookie- ein beliebiges Cookie. Beide bestehen aus denselben drei Tags mit denselben Aufgaben.

Das Muster in drei Schritten

Das Tag mit TouchData muss vor den beiden anderen stehen. Es legt fest, worauf sich DataOK und Data beziehen. Ohne es liefern die beiden nichts.Der Shop merkt sich immer nur einen Wert je Gruppe. Jedes neue TouchData überschreibt den vorherigen. Sie können also mehrere Parameter nacheinander auslesen, aber nicht zwei gleichzeitig vergleichen. Wenn Sie einen Wert später noch einmal brauchen, sichern Sie ihn in einem Design-Control-Tag.

Der Unterschied zwischen DataOK und Data

Beide lassen sich als Bereichs-Tag verwenden, und sie prüfen Verschiedenes. Der Unterschied zeigt sich bei einem Parameter ohne Wert. Bei der Adresse …/?flag= greift CheckURLParam-DataOK, weil der Parameter da ist. CheckURLParam-Data greift nicht, weil kein Wert dahintersteht. Für die Frage “wurde dieser Parameter mitgegeben” nehmen Sie deshalb DataOK, für “steht ein Wert darin” Data.

URL-Parameter auslesen

CheckURLParam-TouchData()

Legt fest, welcher Parameter der aufgerufenen Adresse gelesen wird. Der Name steht in den Klammern.
Der Parametername wird genau so gesucht, wie Sie ihn schreiben. Groß- und Kleinschreibung zählt. Ohne Namen in den Klammern ist das Tag ungültig.

Den Namen aus einem anderen Tag holen

CheckURLParam-TouchData() unterstützt Tag-in-Tag. Der Parametername kann also aus einem anderen Tag kommen.
Diese Möglichkeit gibt es nur bei den URL-Parametern. CheckCookie-TouchData() wertet ein Tag in den Klammern nicht aus, dort muss der Name fest im Template stehen.

Cookies auslesen

CheckCookie-TouchData()

Legt fest, welches Cookie gelesen wird.
Der Shop sucht den Namen im Cookie-Kopf der Anfrage. Heißt ein anderes Cookie so, dass Ihr Name darin endet, kann dessen Wert gefunden werden: eine Suche nach sitzung findet auch benutzersitzung. Wählen Sie deshalb eindeutige Namen und prüfen Sie das Ergebnis, bevor Sie darauf aufbauen.
Ein Cookie, dessen Wert in Anführungszeichen steht, wird richtig erkannt. Die Anführungszeichen selbst gehören nicht zum Wert. Leerzeichen am Ende eines Wertes ohne Anführungszeichen entfernt der Shop.
Ein Cookie kommt vom Browser des Besuchers und kann dort verändert werden. Behandeln Sie den Wert wie jede andere fremde Eingabe und leiten Sie daraus keine Berechtigung ab.

Fremde Eingaben sicher verwenden

Beide Gruppen geben Werte aus, die der Besucher selbst bestimmt. Die Adresse kann jeder ändern, das Cookie ebenso. Für die Ausgabe im Fließtext ist das unkritisch: Der Shop gibt die Werte HTML-kodiert aus, ein eingeschleustes Element wird also als Text angezeigt und nicht ausgeführt.
In anderen Zusammenhängen reicht das nicht. Setzen Sie einen solchen Wert nie ungeprüft in ein JavaScript, in ein href-Attribut oder in eine Weiterleitung ein. Prüfen Sie stattdessen gegen eine feste Liste erlaubter Werte, beispielsweise mit den Design-Control-Tags.
Das ist das übliche Muster: den fremden Wert einmal einlesen, gegen die erwarteten Werte prüfen und nur danach etwas tun. Was nicht in die Liste passt, wird stillschweigend ignoriert. Referenz: Design Control Tags

Die Tags im Überblick

Zulässig sind alle sechs Tags auf allen Templates.

Verwandte Themen