dedlfix: Wie korrekt Anführungszeichen aus DB in Textfeld ausgeben?

Beitrag lesen

echo $begrüßung;

Die Anfz. in der DB kommen ausschließlich von mir (also keine Gefahr von Injection oder so),

Es ist im Prinzip egal, ob es sicherheitstechnisch relevant ist oder nicht.

nur wie muss ich die Zeichen korrekt in der DB speichern, um sie dann in die Eingabefelder ausgeben zu können?

Stets kontextgerecht. Wenn du etwas in Richtung HTML ausgibst, beachtest du die HTML-Regeln. Wenn du etwas in ein SQL-Statement einfügst, beachtest du dessen Regeln. Du beachtest immer nur die Regel für den aktuelen Kontext und nicht das was irgendwann viel später mal erfolgen soll. Denn wenn du bereits in die Datenbank HTML-gerechte Notierungen schreibst, kannst du darauf keine Stringfunktionen mehr sinnvoll anwenden, beispielsweise weil aus dem einen Zeichen < plötzlich 4 werden &lt; und so weiter.

Ist die einzige Möglichkeit die Anfz. in der DB mit &quot; anzugeben, oder gibt es andere/bessere Lösungen?

PHP kennt htmlspecialchars() für den HTML-Kontext, andere Sprachen bringen sicher ihre eigenen Funktionen mit.

Für den SQL-String-Kontext gibt es mysql_real_escape_string() als PHP-Funktion und gleichnamig auch als MySQL-API-Funktion. (Beachte unter PHP noch das Feature Magic Quotes, das es zu deaktivieren gilt, wenn man sich selbst um die kontextgerechte Behandlung kümmert.)

echo "$verabschiedung $name";