Tobias Kloth: Insert mit $_POST

Beitrag lesen

Hallo Stanload,

btw: wie gefährlich es ist, usereingaben ungeprüft zu übernehmen und zum befüllen der DB zu verwenden, ist dir das bewusst?
Wie, ungeprüft? Ich überprüfe doch, ob dieverse Felder gefüllt wurden. Was müsste ich denn ncohj prüfen?

das schon, ja, aber sobald in einem der einzutragenden Werte ein ' vorkommt, wirft dir das dein ganzen Query durcheinander - probier es mal aus. Deshalb sollten Daten die vom User kommen immer erst durch eine Funktion o.ä. gejagt werden, die die "gefährlichen" Zeichen "entschärft" - in deinem Fall durch mysql_escape_string() (->http://de.php.net/mysql_escape_string).

wenn du es so lässt, wundere dich nicht, wenn dir irgendjemand deine tabellen löscht ...
Hm, wie kann man das denn dann hinbekommen *nichts peil im Moment*?

u.U. kann es passieren, das dir einer ein "DELETE FROM tabellenname" mitreinschmuggelt und dir damit eben die Tabelle löscht (was aber idR nicht funktionieren wird, da du INSERT schon fest angegeben hast, und mysql_query() keine zwei Querys ausführen kann).

noch kurz was zu deinem Code aus [pref:t=58014&m=325287]:

if ( $_POST['nick']!=="" &&

bist du sicher, dass du wirklich '!==' willst, und nicht nur '!='? Mit '!==' überprüfst du nämlich auch noch auf Typengleichheit, was hier imho nicht nötig ist (siehe http://de.php.net/language.operators.comparison). Außerdem gibt es auch eine Funktion die prüft, ob eine Variable leer ist: empty() (wer hätte es gedacht :-))

Grüße aus Nürnberg
Tobias

--
Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|