Also ich habe bei dem Testcode (UTF-kodierter PHP-Code) kein Problem:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php $pruefung = array(
'name' => '/^([A-Za-z])[a-z]+(([ -])([A-Za-z])[a-z]+)*$/',
'absender' => '/^ [\w.!#%&\*\/=\?\^\`\{\|\}\~+-]{1,64} \@
[[:alnum:].-]{1,255} \. [a-z]{2,6} $/xi',
//prüft auf gültige E-Mail-Adresse nach RFC 2822,
//erlaubt auch ungewöhnliche Adressen wie "{@heise.de";
//strengere Prüfung (erfordert z.B. mindestens 2 Zeichen vor @
//und im Domainnamen, schließt ungewöhnliche Adressen aus):
//'absender' => '/^[\w.+-]{2,64}\@[\w.-]{2,255}\.[a-z]{2,6}$/',
'betreff' => '/^[[:print:]]{3,}$/',
//restriktivere Variante:
//'betreff' => '/^[[:alnum:]\s\?.!,;:\(\)\/\"-]{3,}$/',
'text' => '/^[[:print:][:space:]]{10,}$/'
);
$parameter = 'betreff';
$wert = "ÄÖÜäöüß";
if(!preg_match($pruefung[$parameter], $wert)) die('Eingaben unzureichend - bitte gehen Sie zurück zum Feld ' . $parameter . ': ' . $wert);?>
Bei mir kommt da kein die.
Kann es sein, dass im Feld betreff mehr drin ist?
Kannst du nicht mal das Ganze ausgeben?
if(!preg_match($pruefung[$parameter], $wert)) {
$debug = bin2hex($wert);
die("DEBUG #$debug# ". '<br> Eingaben unzureichend - bitte gehen Sie zurück zum Feld ' . $parameter . ': ' . $wert);?
}
Last edited: 2010-11-06 14:03:19 +0100 (CET)