Lithaila: Formularwert auf Zahl testen

Beitrag lesen

Warum,

erkennt php nicht, dass keine Zahl eingegeben wurde?
Ich kann irgendeinen Müll mit Buchstaben, etc eingeben und es wird 0 als Wert in der DB gespeichert.

:(

...
$preis = str_replace(",", ".", $_POST['preis']);
$preis = sprintf("%01.2f", $preis);
if(!is_float($preis)) {
    echo "<p>Bitte geben Sie einen gültigen Preis ein.</p>";
} else {

...

if (preg_match('/[^-.0-9]/', $zahl)) {
    echo "<p>Bitte geben Sie einen gültigen Preis ein.</p>";
}