MacBook Banner 728x90
< Korrekte Schreibweise TYPO3

Cookies, POST und GET Variablen per Typoscript ausgeben

05.07.2008
Lina Wolf

empfohleneLinks

t3lib_div Class Reference

Cookies anzeigen per Typoscript
Cookies in Typoscript - Foto: Bernd Boscolo, aboutpixel.de

Der data Parameter des TEXT-Objekts in TYPO3 ist vielseitig und zum Teil wenig bekannt. Unter anderem kann man mit Hilfe des data Parameters auch in TYPO3 Cookies per Typoscript anzeigen. Aber auch zum Anzeigen von GET- und POST Parametern und zur Anzeige von weiteren Server-Variablen wie z.B. der IP Adresse des Besuchers lässt sich der data Parameter des TEXT.Objekts in Typoscript nutzen.

Typoscript Referenz zum Thema Datatyp

Weitere Informationen - leider nur auf Englisch - über die Möglichkeiten des .data Attributes finden sich auch hier:

Typoscript Datatype reference

Cookies in TYPO3 per Typoscript anzeigen

   temp.mycookie = TEXT
temp.mycookie.data = global : HTTP_COOKIE_VARS | mycookie
temp.mycookie.ifEmpty = Cookie "mycookie" war nicht gesetzt

Dieser Typoscript Code gibt den Inhalt des Cookies Namens "mycookie" aus, wenn dieser gesetzt war. Ansonsten gibt er den alternativen Text 'Cookie "mycookie" war nicht gesetzt' aus.

Mit .data Attribut des Typoscript TEXT-Objekts GET- und POST Variablen anzeigen

GET- und POST Variablen, z.B. aus Ergebnissen von Formulareingaben können ebenfalls über data angezeigt werden:

   temp.mycookie = TEXT
temp.mycookie.data = GPvar : formular
temp.mycookie.ifEmpty = Formular wurde noch nicht abgesendet

GPvar unterscheidet leider nicht zwischen POST- und GET Variablen was bei standardmäßig vorhandenen GET-Variablen (z.B. id und type) zu Verwirrungen führen kann. Deshalb sollte man solche Benennungen vermeiden.

Cookie zum Auswählen eines Datensatzes nutzen

Wenn der Cookie nun Beispielsweise nicht einen auszugebenden Text sondern die ID eines Datensatzes (zum Beispiel aus tt_address) enthielt, kann man den Cookie wie folgt zu einer Datenbankabfrage per Typoscript nutzen:

temp.main.15 = CONTENT
temp.main.15 {
table = tt_address
select {
pidInList = 13
where.stdWrap.cObject = TEXT
where.stdWrap.cObject.data = global : HTTP_COOKIE_VARS | meine_adresse
where.stdWrap.cObject.wrap = uid = |
}
renderObj = COA
renderObj {
10 = TEXT
10.value = <h1>Adresse</h1>
20 = TEXT
20.field = name
20.wrap = <p>|<br/>
30 = TEXT
30.field = address
30.wrap = |<br/>
40 = TEXT
40.field = zip
40.noTrimWrap = || |
50 = TEXT
50.field = city
50.wrap = |</p>
}
}

Achtung, CONTENT zeigt nur Inhalte von Datensätze an, die auf einer Seite liegen, die TYPO3 anzeigen würde. Datensätze, deren pid auf SYSORDNER, versteckte, gelöschte oder ähnliche nicht-anzeigbaren Seiten liegen werden vom Typoscript Objekt CONTENT nicht angezeigt!

GET Variablen aus TYPO3 Extensions per PHP abfragen

Aus Gründen der Sicherheit sollten bei der Extension Programmierung in TYPO3 GET und POST Variablen nicht über die globalen PHP VARIABLEN $_GET und $_POST sondern über die TYPo3 AÜPI Funktionen abgefragt werden. Diese liegen ind er Klasse t3lib_div.

Die über längere Zeit empfohlene Methode t3lib_div::GPvar('param') ist mittlerweile depricated und sollte ebenfalls nicht mehr genutzt werden.

Über t3lib_div::_GET() und t3lib_div::_POST(); können alle GET bzw POSt Variablen abgefragt werden. über t3lib_div::_GP() kann man die Variablen abfragen, wenn man nicht weiß ob GET oder POST gesetzt wurde. POST hat Priorität über GET. 

Mit t3lib_div::_GET('no_cache') lässt sich z.B. abfragen, ob der Cache ausgeschaltet wurde. Mit t3lib_div::_GET('tx_ttnews')  wird ein Array zurückgeliefer, welches alle zu tt_news gehörigen Parameter enthält. Z.B.

Array
(
[tt_news] => 87
[backPid] => 4 
)

Diese Parameter sähen in einer - nciht durch RealURL veränderten - URL dann so aus:
einzelseite.html?tx_ttnews[tt_news]=87&tx_ttnews[backPid]=4 

Hinweis für GPVars der Form tx_cal_event[XY]=...

Gravatar: Peter Pröll Hinweis für GPVars der Form tx_cal_event[XY]=...
Bei GP-Variablen, die als Array übergeben werden, z.B. ...&tx_cal_event[uid]=1&..., können die einzelnen Elemente so abgefragt werden:<br />
<br />
temp.myVar = TEXT<br />
temp.myVar.data = GPVar:tx_cal_event|uid

Array Get-Parameter mit PHP auslesen

Gravatar: Lina Array Get-Parameter mit PHP auslesen
Möchte man mit der Funktion t3lib_div::_GET array Parameter der Form &tx_rggooglemap_pi1[group_uid]=2 auslesen, so gibt t3lib_div::_GET('tx_rggooglemap_pi1') ein array zurück, welches man in einer Variable zwischenspeichern und dann auslesen kann.

Kommentar hinzufügen

* - Pflichtfeld

*




*