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