Zum Inhalt springen

Select Statement mit Resultat aus userFunc

Erstellt am 18. Februar 2010 · 2 Antworten · letzte Antwort am 22. Februar 2010

Tags: Frage

superbiloquentia ·

Hallo zusammen.

Ich kämpfe mal wieder mit TypoScript und versuche dabei den Rückgabewert einer selbstgeschriebenen Funktion in ein Select Statement einzubinden. Die PHP Funktion macht dabei nichts anderes als einen in der URL übergebenen String-Parameter zu escapen um SQL Injections zu vermeiden. Dummerweise kann ich dazu nicht die existierende Extension aus dem TER verwenden, da ich auf Typo3 4.1.3 arbeite (Vorgabe) und die Extension mindestens Typo3 4.2 benötigt.

Das Resultat der Funktion kriege ich auch korrekt zurückgeliefert und kann es auch ausgeben. Nur wenn ich nun das SQL Statement anpassen will, passiert gar nix:

# User Lib einbinden
includeLibs.user_string_functions = fileadmin/user_functions/user_string_functions.inc

# Funktion aufrufen
temp.Ref = USER
temp.Ref.userFunc = user_string_functions->user_string_escape

und danach das SQL Statement zusammensetzen

...
 select.andWhere {
  data = temp.Ref
  wrap = ref LIKE '%|%'
 }
...

Hierbei scheint "data" nicht korrekt zugewiesen zu werden und bleibt leer? Das SQL Statement funktioniert auf jeden Fall nicht wie gewünscht.

Hat einer eine Idee woran das liegen könnte?

karlchen ·

Um den Inhalt eines Objektes in ein anderes zu kopieren nutzt man in TypoScript nicht den "=" Operator sondern den "<" Operator.

 data < temp.Ref

btw: wie heißt denn die von dir angesprochene Extension

superbiloquentia ·

Grüss dich und besten Dank für deine Antwort. Diese Methode mit dem Zuweisen über den "<" Operator habe ich auch versucht und hat leider ebenfalls nicht hingehauen.

Es scheint so, als ob das Select Statement vom Framework vor dem Auswerten der User Function ausgeführt werden würde? Zumindest erhält das SQL Statement immer einen leeren String anstelle des bearbeiteten. Möglicherweise ist natürlich auch der gesamte Ansatz falsch...?

Bezüglich der Extension, die heisst "quote functions for stdWrap":
Link: http://typo3.org/extensions/repository/view/sm_stdwrapquote/current/
Anleitung: http://www.t3node.com/blog/prevent-sql-injection-in-typoscript-when-using-strings-from-get-parameters/