echo $begrüßung;
Genau. Es reicht ja schon, einen String, der als Parameter kommt, auf das Zeichen qq(') zu testen, um zu prüfen, ob der Fuzzi Böses im Schilde führt.
Und damit gibt's für jeden, der beispielsweise O'Brien heißt oder diese Zeichen anderweitig aber 'legal' verwendet erstmal Generalverdacht, nur weil der Programmierer nicht mit seiner Datenbankschnittstelle umgehen kann?
In einer Email-Adresse sind viel mehr Zeichen erlaubt als landläufig angenommen wird. Sich auf wenige Zeichen zu beschränken, verhindert vielleicht eine SQL-Injection aber keinen Missbrauch. Es gibt keinen RegExp, um zu prüfen, ob die Email-Adresse einem real existierendem Postfach gehört und dessen Besitzer die Verwendung legalisiert hat.
Das SQL-Injection-Problem muss generell und für alle Arten von Daten gelöst werden. So schwer ist das ja nicht. Notfalls prüft man sein System mit harmlosen selbst erstellten SQL-Injections.
echo "$verabschiedung $name";