Mailinglisten-Archive |
Jörn Grube schrieb: > Guten Tag, > > ich hab wiedermal ein Problem, woran ich kurz vorm verzweifeln bin. > Ich hab folgende Funktion: > > function testText($text) { > global $errText; > if (!ereg ("^\s*[A-Za-zÄÖÜäöüß\-,\s]+\s*$", $text)) { > $errText = 1; > } > return $errText; > } sieht ziemlich durcheinander aus, wieso gibst du $errText zurück wenn es eh global ist und die Rückgabe gar nicht auswertest? wieso initialisierst du $errText nicht? wenn du eh trim() machst brauchst du die \s nicht außerdem solltest du lieber mit preg*() arbeiten function testText($text) { if (! preg_match("/^[-a-zäöüß,\s]+$/i", $text)) { return false; } return true; } > Laut http://regexlib.com/RETester.aspx gibt der (das?) Regex auch > korrekt zum Beispiel "Mein Test mit Ä-ö-ü und ß" als gematched zurück. > In meiner Seite wird die Funktion nun wie folgt aufgerufen: > > testText($betreff); > if($errText == 1){ if (false === testText($betreff)) { > $errBetreff = 1; du solltest lieber mit true und false arbeiten > } > > $betreff kommt per POST aus einem Formular > $betreff = trim($_POST['betreff']); > > Nun kann ich in dem Formular aber eingeben, was ich will, es kommt immer > 1, also Fehler, zurück. > Was mach ich falsch? mach halt mal ein var_dump() auf dein $betreff und dein $errText, oder probier es mit den obigen Änderungen -- Sebastian
php::bar PHP Wiki - Listenarchive