CSS und JavaScript für MySql escapen

Thomasio

Erfahrenes Mitglied
Ich habe mir in den Kopf gesetzt eine Mischung aus CSS und JavaScript in eine PHP-Variable zu packen, die ich aus MySql auslesen, in einem HTML-Formular bearbeiten und zurück schreiben kann.

Beispiel:

Code:
print <<<END
...
<td width="100%" style="background-size: 100% 100%; border-style: ridge; border-width: medium; border-color: #eee" align="center" background="./images/button.jpg" onclick="window.location.href='$naechsteseite'">
...
END;

soll werden zu

Code:
$style = mysql_fetch_object(mysql_query("SELECT `style` FROM `tablename` WHERE `id` = 1"));
print <<<END
...
<td {$style['style']}>
...
END;

Um das ganze in einem Formular bearbeiten zu können muss ich also beim Einlesen etwa sowas machen:

Code:
$style = mysql_fetch_object(mysql_query("SELECT `style` FROM `tablename` WHERE `id` = 1"));
print <<<END
...
<input name="style" value="{$style['style']}">
...
END;

Wenn ich dieses Formular absende, muss ich dann etwa sowas machen:

Code:
mysql_query("UPDATE `tablename` SET `style` = '$_POST['style']' WHERE `id` = 1");

Das Ganze funktioniert offensichtlich so nicht, weil sich z.B. Anführungszeichen und Hochkommas überschneiden bzw. beissen.

Ich weiss, dass ich Hochkommas in queries durch doppelte Hochkommas escapen kann, ich weiss auch, dass es in PHP AddSlashes() und StripSlashes() gibt, aber ich verliere trotzdem noch die Übersicht und selbst wenn ich es so habe, dass es funktionierend aussieht, bin ich mir einfach nicht sicher, ob das wirklich alles richtig ist, mir bleibt immer die Angst, am Ende habe ich irgendwas übersehen, irgendein Sonderzeichen nicht escaped und bei der nächsten Änderung gibt es Murks.

Kann mir jemand an diesem Beispiel erklären, wie man sicher stellt, dass zwischen MySql, PHP, HTML, <input> und $_POST immer alles richtig läuft?
 
mysql_real_escape_string() beim eintragen in die Datenbank verwenden. Und das eigentlich immer wenn Strings eingetragen werden.
 
Zurück