malnefrage.de
malnefrage.de
Menü
Facebook
Twitter
E-Mail
Bookmark
weitere
Ratgeber-Community für Fragen & Antworten:
Forum mit Tipps, Hilfe und Ratschläge
Forum Frage stellen! Neue Fragen Neue Antworten Ratgeber Login
Frage
Frage
von Quix

Texteingabe mit PHP prüfen - nur Buchstaben inkl. deutsche Umlaute zulassen?

Wie kann man mit PHP die Eingabe in einem Textfeld eines Formulars prüfen, damit nur Buchstaben inkl. deutsche Umlaute zulassen werden. In einem Formular können Benutzer Eingaben machen. Um SPAM zu verhindern, sollen für die Eingabe eines Input Textfeldes nur Buchstaben inkl. deutscher Umlaute erlaubt sein. Wie prüft man das am besten in PHP?

Antwort
Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von coder
Um in PHP eine Eingabe zu prüfen und sicherzustellen, dass nur Buchstaben inklusive deutscher Umlaute erlaubt sind, kannst du eine Kombination aus preg_match() und einem regulären Ausdruck verwenden. Der reguläre Ausdruck sollte dabei alle gewünschten Zeichen (A-Z, a-z, sowie die Umlaute äöüÄÖÜß) enthalten.

Hier ist ein Beispielcode:
function isValidInput($input) {
    // Regulärer Ausdruck, der nur Buchstaben und deutsche Umlaute erlaubt
    $pattern = '/^[a-zA-ZäöüÄÖÜß]+$/u';
    
    // Überprüfen, ob die Eingabe den Bedingungen entspricht
    if (preg_match($pattern, $input)) {
        return true; // Eingabe ist gültig
    } else {
        return false; // Eingabe ist ungültig
    }
}

// Beispiel der Überprüfung
$input = "HalloÜbung";

if (isValidInput($input)) {
    echo "Die Eingabe ist gültig.";
} else {
    echo "Die Eingabe ist ungültig.";
}
Erklärung des regulären Ausdrucks:
- ^ und $ stellen sicher, dass die Überprüfung am Anfang und Ende der Zeichenkette erfolgt (d.h., der gesamte String muss den Bedingungen entsprechen).
- [a-zA-ZäöüÄÖÜß] definiert die erlaubten Zeichen: Buchstaben von A bis Z (sowohl groß- als auch kleingeschrieben) und deutsche Umlaute.
- Das + bedeutet, dass mindestens ein Zeichen vorhanden sein muss.
- Das /u sorgt für die Unicode-Unterstützung, was für Umlaute notwendig ist.

Mit dieser Methode wird sichergestellt, dass nur Buchstaben und deutsche Umlaute eingegeben werden können.
Kommentar von Quix
Und wenn Leerzeichen z.b. zwischen dem Vor- und Nachname auch erlaubt sein sollen?
Hilfreicher Kommentar von coder
Wenn Leerzeichen zwischen den Wörtern (z.B. Vor- und Nachname) ebenfalls erlaubt sein sollen kannst du den regulären Ausdruck erweitern, um auch Leerzeichen einzuschließen.
$pattern = '/^[a-zA-ZäöüÄÖÜß\s]+$/u';
\s erlaubt Leerzeichen in der Eingabe.

Damit werden Eingaben wie "Max Müller" oder "Anna Maria Schmidt" akzeptiert.
Kommentar von Quix
Perfekt, danke funktioniert!


Antwort
Antwort
von StackX
Du kannst die Eingabe mit PHP einfach mit einem regulären Ausdruck prüfen. Verwende hierfür preg_match() um sicherzustellen dass nur Buchstaben und deutsche Umlaute erlaubt sind. Der passende Regex-Ausdruck dafür lautet: '#^[a-zA-ZäöüÄÖÜß]+$#'. Damit werden nur Buchstaben und Umlaute akzeptiert. Zahlen und Sonderzeichen sind ausgeschlossen.
Ähnliche Fragen
Seit kurzem habe ich ein merkwürdiges Problem in Outlook. Es werden anstatt der Umlaute nur noch Fragezeichen im Textkörper der Mails angezeigt. Woran liegt ...
Seit dem ich die PHP-Version auf meinem Webspace auf 5.6 umgestellt habe, werden alle Umlaute nicht mehr korrekt dargestellt. Alle Umlaute werden als Raute ...
Hi, hier einmal meine Geschichte. Als ich 11 war hab ich in einem Laden einen Schlüsselanhänger geklaut, was ich sehr dumm von mir finde und nicht stolz ...
Vor dem Hintergrund der Flüchtlingskrise scheint sich der Unmut in der deutschen Bevölkerung zunehmend zu steigern. Politiker aller Couleur berichten immer ...
Hallo zusammen, ich benutze das neue Linux Mint Cinnamon und habe gerade bemerkt, dass ich meine Tastatur aus versehen verstellt habe. Das folgende ...
Nächste Frage

Die auf malnefrage.de veröffentlichten Fragen und Antworten sind Meinungsäußerungen der jeweiligen User. Da die Aussagen nicht geprüft werden, kann die Richtigkeit der Inhalte nicht gewährleistet werden.