Doppelte und einfach Anführungszeihen im MySQL-Statement
heinetz
- php
0 Vinzenz Mai0 heinetz0 ChrisB0 Tom
0 Vinzenz Mai
Hallo Forum,
in meinem selfmade CMS wird mit einem WYSIWYG-EDITOR HTML editiert und dann per MySQL-Statement in der DB abgespeichert.
Was ist der korrekte Weg folgenden String in einem MySQL-Statement zu verarbeiten ?
<img src="gif.gif" title="Bla 'Bla'">
danke für Tipps und
beste gruesse,
heinetz
Hallo,
in meinem selfmade CMS wird mit einem WYSIWYG-EDITOR HTML editiert und dann per MySQL-Statement in der DB abgespeichert.
Was ist der korrekte Weg folgenden String in einem MySQL-Statement zu verarbeiten ?
<img src="gif.gif" title="Bla 'Bla'">
die passende Maskierfunktion verwenden, siehe Vorabversion eines neuen Artikels:
http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/#massnahmen
Freundliche Grüße
Vinzenz
Hallo,
herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
sind ?
Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
auf OFF stellen ? Muss ich das dann im Empfängerskript des Forms
machen ?
Oder reichts eventuell so:
$wert = mysql_real_escape_string(stripslashes($_POST['wert']));
beste gruesse,
heinetz
Hi,
herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
sind ?
Es "reagiert" wie sonst auch.
Dein Script bekommt allerdings von aussen Daten, die bereits verfälscht sind.
Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
auf OFF stellen ? Muss ich das dann im Empfängerskript des Forms
machen ?
Das solltest du generell auf off stellen.
Oder reichts eventuell so:
$wert = mysql_real_escape_string(stripslashes($_POST['wert']));
Zur Not ja. Aber sonderlich sinnvoll ist es nicht.
Ausserdem verfälscht das dann auch wieder die Daten, wenn magic_quotes_gpc irgendwann mal auf off gestellt wird - in PHP 6 wird es komplett entfallen.
Du solltest also wenigstens vorher prüfen, ob es aktiv ist, und nur dann etwas dagegen unternenehmen.
MfG ChrisB
Hello,
Du solltest also wenigstens vorher prüfen, ob es aktiv ist, und nur dann etwas dagegen unternenehmen.
Und das kann er auch generell am Anfang des Scriptes rekursiv für jedes betroffene Array tun, eben unter Beachtung des Schalters, den er bequem mit get_magic_quotes_gpc() abfragen kann.
http://us3.php.net/manual/en/function.get-magic-quotes-gpc.php
function stripslashes_deep($value)
{
if (!get_magic_quotes_gpc()) return $value;
if(is_array($value))
{
array_map('stripslashes_deep', $value);
else
{
stripslashes($value);
}
return $value;
}
$_POST = stripslashes_deep($_POST);
usw.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
herzlichen Dank. Wie reagiert mysql_real_escape_string(), wenn
die Werte ind $_POST-Variablen mit "magic_quotes_gpc" 'versehen
sind ?
Muss ich zum Verwenden von mysql_real_escape_string() magic_quotes
auf OFF stellen ?
sinnvollerweise ja: siehe verlinkter Artikel, letzter Abschnitt:
http://aktuell.de.selfhtml.org/artikel/review/kontextwechsel/#magic_quotes
Freundliche Grüße
Vinzenz