Hallo,
besser:
$vorname = str\_replace(Array("\r", "\n"), "", stripslashes($vorname));
$name = str\_replace(Array("\r", "\n"), "", stripslashes($name));
Email einschleusen? Bin ich sicher, wenn die Daten der User um
Backslashes bereingt werden und solst alles zugelassen ist?
Vom Nutzer kommen keine Backslashes, bzw, selbst wenn der Nutzer \n dort eingibt, macht das nichts aus, da das ja auch als 2 Zeichen „“ und „n“ an das Mailprogramm übergeben wird (und dort ggfs. einen Fehler provoziert, weil die E-Mail Adresse ungültig ist, aber das ist ein anderes Problem).
Wenn du in einem String allerdings „\n“ schreibst, dann macht PHP daraus EIN Zeichen, nämlich das Zeichen für den Zeilenumbruch, welches man zum Beispiel auch einfach mit in einem Eingabefeld oder aber in einem String erzeugen könnte:
$test = "Das
ist
ein
Test";
und
$test = "Das\nist\nein\nTest";
sind identisch, im zweiten Fall wurden die Zeilenumbrüche durch Ersetzen des \n vom PHP eingebaut.
Und diese(s) Zeichen (es gibt 2 verschiedene, \n und \r) musst du abfangen…
Dazu hat ja unten schon einer was geschrieben. Bisher dachte
ich auch, dass ohne Backslasches, die nachfolgenden Befehle,
d.h. Sonderzeichen nicht ausgeführt werden können. Oder wäre
es hier besser mit trim() überflüssige Zeichen zu entfernen.
trim entfernt nur am Anfang und am Ende, ist daher nicht unbedingt geeignet.
Dann kenn ich noch strip_tags() mit dem alle HTML und
PHP-Befehle entfernt werden. Habe mein Script selbst anhand
Sofern du die nicht brauchst, ja. Wobei strip_tags machmal „böse“ sein kann, weil das alles in eckigen Klammern ersetzt, wenn dir also jemand ein Stück HTML-Code schicken will, oder auch mathematische Ungleichungen, besser weglassen.
Alexander