phpbar.de logo

Mailinglisten-Archive

[php] Regex und Funktion und Rückgabe

[php] Regex und Funktion und Rückgabe

Jörn Grube jg at team-spandau.de
Mon Jul 30 15:07:26 CEST 2007


Sebastian Mendel schrieb:
> Jörn Grube schrieb:
>>
>> 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?

Den Inhalt von $errText werte ich ganz am Ende des Scripts aus. Es wird 
ja noch mehr geprüft (Mail, Name usw.), alles in derselben Art und 
Weise. Steht dann auch nur ein Fehlerinhalt auf 1, wird dieser als GET 
an header("location: kontakt.php?errText=".$errText."") (nur als 
Beispiel) ans Formular zurückgeschickt, die bisherigen Inhalte wieder in 
die Felder geschrieben und bei falschen Feldern eine Meldung 
dazugeschrieben.

> wenn du eh trim() machst brauchst du die \s nicht

Das kommt davon, wenn man solche Sachen aus dem INet zusammensucht und 
sie nicht wirklich versteht. Hab ja schon einiges gelernt, aber wie man 
Regex erstellt, das werde ich nie kapieren, glaub ich :(

> außerdem solltest du lieber mit preg*() arbeiten
> 
> function testText($text)
> {
>     if (! preg_match("/^[-a-zäöüß,\s]+$/i", $text)) {
>         return false;
>     }
>     return true;
> }

...
...
...

>> Was mach ich falsch?
> 
> mach halt mal ein var_dump() auf dein $betreff und dein $errText, oder
> probier es mit den obigen Änderungen

So funktionierts, auch wenn ich noch ein wenig damit zu tun haben werde 
zu verstehen, warum :) Besten Dank nochmal, ich werde mich dann mal 
dransetzen und versuchen, es zu verstehen :)


LG und danke aus Berlin Jörn

php::bar PHP Wiki   -   Listenarchive