echo $begrüßung;
ich hab mich jetzt ein wenig informiert und bin auf die Funktion mysql_real_escape_string() gestoßen. Diese soll SQL-Injections verhindern. Hab ich mir gedacht wunderbar...bastel ich die überall rein. Nächstes problem...Bei jedem Formularfeld wo ich sie einsetze und der Benutzer sagen wir mal " bzw. < ... verwenden will werden da backslashs vorgehängt und in die DB eingetragen.
Bei den < hast du dich eventuell verguckt. Es gibt ein Feature in PHP namens Magic Quotes, das eine gewisse Sicherheit vor SQL-Injections bieten soll.
Eine bewährte Vorgehensweise zur Datenverarbeitung ist, Eingabedaten gleich nach der Entgegennahme (wenn nötig) zu dekodiert bzw. in ein internes Format zu bringen. Weitere interne Bearbeitungsschritte erfolgen nur mit diesen "reinen" Daten. Wenn Daten ausgegeben werden sollen, werden sie, möglichst als letzter Schritt vor dieser Ausgabe, gemäß den Regeln dieser Ausgabeschnittstelle maskiert.
Magic Quotes maskiert aber gleich die Eingabedaten, und zwar unabhängig von der wirklich verwendeten Ausgabeschnittstelle. Es behandelt auch nur die Zeichen ' (single-quote), " (double quote), \ (backslash) und NULL. Magic Quotes hilft schon mal im Groben, kennt aber die Feinheiten der verwendeten Datenbanken nicht. Es behandelt einfach zu wenig Zeichen. Außerdem behandelt es die Eingabedaten immer, und das auch, wenn man es nicht braucht. Wenn du beispielsweise ein Formuler mit Vorschau-Funktion erstellst (Stichwort Affenformular), gibst du die Eingabedaten zur Kontrolle noch einmal aus, bevor du sie der Datenbank übergibst. Doch für HTML gelten andere Maskierungsregeln. Magic Quotes sind hier also auch noch kontraproduktiv.
Da du nun mit mysql_real_escape_sting() selbst gegen SQL-Injection vorgehst, kannst du Magic Quotes deaktivieren bzw. die ebenfalls auf der verlinkten Seite zu findende Gegenmaßnahme verwenden, falls der Provider ein Deaktivieren nicht zulässt.
echo "$verabschiedung $name";