preg_match Problem

Loddar1

Erfahrenes Mitglied
Hallo,
Ich habe endlich das preg_match gefunden was ich suche, so wie ich es gefunden habe funktioniert es auch.
Wenn ich aber per post sende, funktioniert es nicht!
Hier mal der Code:
PHP:
$name = 'Jürgen Sörhan';

            if (!preg_match("/^[A-Z]+[a-zA-ZßäöüÄÖÜ' ]*$/",$name))
    {
       echo 'Falscher Name eingegeben.<br/>';
    }
    else
        {
        echo $name;
        }
Lässt keine weiteren Zeichen zu, so wie ich das möchte.
Nur Buchstaben, Umlaute und Leerzeichen.

Aberr mit $_POST funktioniert es nicht, hat einer eine Idee oder weis warum das so nicht geht?
Hier der Code:
PHP:
$postname = isset($_POST['name']) ? $_POST['name'] : "";
    if (!preg_match("/^[A-Z]+[a-zA-ZßäöüÄÖÜ' ]*$/",$postname))
    {
       echo 'Falscher Name eingegeben.<br/>';
    }
    else
        {
        echo $postname;
        }
Das input zum senden ist hier nicht dabei.

Es geht um die Umlaute!
 
Ganz langsam - es findet nicht was gefunden werden soll. Was soll den gefunden werden?
Mach mal einige Beispiele.

Und debuge mal $postname.
 
Ein Name, der 1ste Buchstabe muß groß sein keine zahlen oder andere Zeichen ausser deutsche umlaute und Leerzeichen für ein Formular.

Beispiel: Jürgen Kohler ok
Beispiel: bernd21 Nein
Beispiel: Max Mustermann ok

wenn ich Jürgen Sörhan in das inputfeld schreibe und
PHP:
echo $postname;
mache kommt
Ergebnis: Jürgen Sörhan
 
PHP:
var_dump ($postname) ;


string(15) "Jürgen Sörhan"

Bei dem ersten Code kommt
string(13) "J�rgen S�rhan"
raus.
also ein charset-Problem?
 
Zuletzt bearbeitet:
Hi Zvoni, so sieht mein header aus:
HTML:
<!DOCTYPE html>
<html lang="de"><head>
<meta charset="utf-8"/>
 
Lies dir meinen link durch.
da wird u.A. auch ein „mbstring“ modul erwähnt
als auch ein „Regex-encoding“
 
Ich habe jetzt preg_match weggelassen und mit str_replace nur zeichen die nicht gestattet sind eingetragen.
 
Zurück