phpbar.de logo

Mailinglisten-Archive

[php] Regex und Funktion und Rückgabe

[php] Regex und Funktion und Rückgabe

Sebastian Mendel lists at sebastianmendel.de
Mon Jul 30 12:28:51 CEST 2007


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