# Pflichtfeld mit PHP überprüfen (nur Zahlen)



## Harzteufel (25. Oktober 2007)

Hallo, wie kann ich denn ein <input>-Feld mit PHP überprüfen, ob es nur Zahlen beinhaltet? Also, z.B. für Telefonnummern oder PLZ. Ich hab folgenden Code, aber irgendwie will er nicht so recht funktionieren... 


```
if ($plz == "")
{
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
}
        elseif(!ereg("/^([0-9]+)$/", $plz))
{
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
}
```

Danke!


----------



## Timo_B (25. Oktober 2007)

Da wird dir die Funktion 
	
	
	



```
is_numeric()
```
 helfen.

Also angewendet würde das so aussehen: 
	
	
	



```
elseif(!is_numeric($plz))
```

Gruß
Timo


----------



## Harzteufel (25. Oktober 2007)

Wow, das ging ja fix und funktioniert  Super! Kann man das ganze auch noch einschränken z.B. von 10000 bis 99999?


----------



## Timo_B (25. Oktober 2007)

Vielleicht so: 


```
if($plz >= 10000 && $plz <= 99999)
```

klingt komisch geht aber bestimmt 

Gruß
Timo


----------



## Harzteufel (25. Oktober 2007)

Sorry, aber ich stell mich bestimmt noch ein wenig unbeholfen an 
Müsste es SO nicht funktionieren?


```
if ($plz == "")
        {
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
        }
elseif(!is_numeric($plz) && ($plz >= 10000 && $plz <= 99999))
        {
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
}
```


----------



## Timo_B (25. Oktober 2007)

```
elseif(!is_numeric($plz) && $plz >= 10000 && $plz <= 99999)
```

Reicht auch.

Mach ma n paar Tests und sag mir obs geht.

Gruß
Timo


----------



## Flex (25. Oktober 2007)

```
$plz >= 10000 && $plz <= 99999
```

Die Armen User aus Brandenburg, deren PLZ mit einer 0 beginnt... 


```
if ($plz == "")
{
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
}
        elseif(!ctype_digit($plz) OR strlen($plz) < 5)
{
        $plzfehler = "<div class='error'><img src='pics/formerror.gif'> Fehler!</div>";
}
```

Natürlich gilt das nur für deutsche PLZ...


----------



## Harzteufel (25. Oktober 2007)

Hmm, es funktionieren beide Varianten nicht wirklich... Bei letzterer kann ich auch sechsstellige Zahlen eingeben und bei der anderen Variante kann ich jetzt sogar wieder Buchstaben eingeben


----------



## Timo_B (25. Oktober 2007)

Felix Jacobi hat gesagt.:


> ```
> $plz >= 10000 && $plz <= 99999
> ```
> 
> Die Armen User aus Brandenburg, deren PLZ mit einer 0 beginnt...



Darüber hab ich nicht nachgedacht  Aber meine Antowrt passt zur Frage 

Ich würds dann schon so machen:

```
preg_match ("/^[0-9]{5}$/",$plz)
```

Gruß
Timo


----------



## Gumbo (27. Oktober 2007)

```
^[0-9][1-9]{4}$
```


----------



## Timo_B (27. Oktober 2007)

das ist besser


----------

