Zum Inhalt springen

cObj CONTENT und dataWrap im andWhere

Erstellt am 23. April 2009 · 2 Antworten · letzte Antwort am 23. April 2009

Tags: Datenbank, Frage

froemken ·

Hab mal wieder eine warum-klappt-das-aber-das-nicht-Frage. Im folgenden will ich dass der Header durch einen Wert aus $_GET ersetzt wird:

lib.stdheader.10.setCurrent.field >
lib.stdheader.10.setCurrent.stdWrap.cObject = CONTENT
lib.stdheader.10.setCurrent.stdWrap.cObject {
	table = fe_users
	select.pidInList = 41
	select {
		andWhere.data = GPvar:tx_sfwsfmitglieder_pi1|member
                andWhere.intval = 1
                andWhere.wrap = uid=|
		selectFields = username
	}
	renderObj = COA
	renderObj {
		10 = TEXT  
		10 {
			required = 1
			wrap = |
			field = username
		}
	}
}
lib.stdheader.10.setCurrent.field >
lib.stdheader.10.setCurrent.stdWrap.cObject = CONTENT
lib.stdheader.10.setCurrent.stdWrap.cObject {
	table = fe_users
	select.pidInList = 41
	select {
		andWhere.dataWrap = uid={GPvar:tx_sfwsfmitglieder_pi1|member}
                andWhere.intval = 1
		selectFields = username
	}
	renderObj = COA
	renderObj {
		10 = TEXT  
		10 {
			required = 1
			wrap = |
			field = username
		}
	}
}

Ich check das nicht. Variante 1 klappt aber 2 nicht?! dataWrap wäre doch genau das richtige und klappt doch sonst so gut. Was habe ich vergessen zu berücksichtigen?

Stefan

Julian.​Hofmann ·

Hallo Stefan.

andWhere.dataWrap = uid={GPvar:tx_sfwsfmitglieder_pi1|member}
andWhere.intval = 1

Die zweite Zeile wandelt den inhalt zum Integer, d.h. was rauskommt ist sowas wie:

$content = intval('uid=123');

Und wenn Du das als WHERE-Clause einsetzt, dann gibt das natürlich nix gescheites (wenn überhaupt ein sauberes Resultat kommt und kein Syntaxfehler)

Ansich ist Dein erster Weg aber zu bevorzugen. Denn Du solltest niemals Usereingaben trauen. Durch den Cast auf Integer stellst Du zumindest sicher, dass nichts bösartiges oder syntaktisch falsches produziert wird. Wenn falsche Integerwerte übergeben werden, käme zwar auch Mist raus, wäre aber Deien Anwendung nicht gefährdet.

Viele Grüße
Julian

froemken ·

Au jou...intval!!! Hab jetzt auch mal in der TsRef nachgeschlagen und dort sehe ich auch dein PHP-Beispiel mit $content = ...

Sowas passiert, wenn man zu schnell kopiert und nix versteht :-)

Danke Dir

PS: In diesem Fall ist die 1te Variante auf jeden Fall die Bessere.