Hello,
ich glaube, jetzt hab ich's verstanden:
- Wenn "magic_quotes_gpc" -> stripslashes auf Daten aus "Post".
- Daten aus Post mit "mysql_real_escape_string()" escapen.
- Dann in die DB schreiben.
Beim Auslesen der Daten muss ich keine Veränderung vornehmen.
So stimmt es.
1. kann man mit einre rekursiven Funktion gleich am Anfang tun,
oder eben, wenn man darf, spätenstens noch in der .htaccess (Modulversion)
oder der lokalen php-ini (CGI-Version) ausschalten
2. lässt sich auch wunderbar auf ein Array anwenden, dass nachher zum DS
für values() zusammengebaut hat. Man muss nur die Zieltypen NULL und FALSE
aussparen.
Am besten gleich in einem 'Rutsch' mit einer kleinen eigenen Funktion auf das
Array der an die Datenbank zu übergebenden Werte anwenden (geht mit array_map() )
##-----------------------------------------------------------------------------
# mysql real escape string with quotes
##-----------------------------------------------------------------------------
function mysql_resq($value, $connection, $quote="'")
{
return $quote . mysql_real_escape_string($value, $connection) . $quote;
}
#-----------------------------------------------------------------------------
und anschließend die Spalten, die mitt NULL oder FALSE belegt werden sollen
wieder gezielt überschreiben im Array. Die kennt man ja, weil ihre Werte i.d.R.
nicht dierekt aus Dialogfeldern des Formulars, sondern aus Auswertungen (Bedingungen)
im Script stammen, die z.B. durch Controls des Formulars (SELECT, RADIO, CKECKBOX)
gefüttert werden...
3. Nur kontextbezogene Behandlungen sind notwendig.
Für die Anzeige im HTML-Kontext eben htmlspecialchars()
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
