Tom: Abfrage auf 0

Beitrag lesen

Hello,

irgendwie klappt's nicht. Ich möchte einen per GET oder POST hereinkommenden Wert auf 5 setzen, vorausgesetzt, er ist leer. Die Zahl 0 ist ein gültiger Wert und soll nicht ersetzt werden.

$wert = ( $_POST['wert'] ) ? $_POST['wert'] : $_GET['wert'];
if (!$wert && $wert!=0 ) $wert = 5;

  
if (isset($\_POST['wert']) and strlen($\_POST['wert']) > 0)  
{  
    $wert = intval($\_POST['wert']);  
}  
else  
{  
    $wert = 0;  
}  
  
  
Das ist aber auch nur eine Näherungslösung, denn eigentlich müsstest Du nicht nur mit intval() den Wert zum Ingteger machen, sondern auch prüfen, ob das hereinkommende Format sauber und verlustfrei  in einen Integer überführbar ist, also die literale Darstellung eines Integers hat.  
  
Dafür hat PHP die diversen Filterfunktionen  
  
<http://de.php.net/manual/en/book.filter.php>  
<http://de.php.net/manual/en/filter.filters.validate.php>  
  
Und Du musst wissen, ob Du tolerant mit Parametern umgehen willst, dann wären die Sanitize-Filter die passenden, oder strict. Dann müsstest Du nur validieren.  
  
  
  
  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
 ☻\_  
/▌  
/ \ Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>