phpbar.de logo

Mailinglisten-Archive

[php] is_long(); -> "23" nicht erkannt

[php] is_long(); -> "23" nicht erkannt

Joachim Engels php_(at)_phpcenter.de
Thu, 10 Jan 2002 14:17:29 +0100


> also dafür habe ich eine lösung.
> sie funktioniert mit regexp.
>
> mein beispiel war:
>
> if(!preg_match("/^[0-9]+$/",$time))
>     echo "Time ist keine Zahl!";
> in dem onlinemagazin dr.web wurde auch mal so eine frage gestellt:
>
http://www.drweb-community.de/forum/forum_thread.php?sid=dc26186671c1ff720f7
6c3a383e443d9&id=34764&pid=

Das werd ich gleich mal ausprobieren, danke.

Aber mal ne Frage.... was soll das ???
Wie in dem Forum geschrieben, habe ich auch so mit settype() rumprobiert...
Also wenn man sowas macht:

$test = "3zj34lkf";
settype($test, "integer");

gibt es keine Fehlermeldung... wird glatt akzeptiert. $test wird dann
einfach auf 3 gesetzt.
Ok, das könnte ja in bestimmten Fällen nützlich sein, da kann ich mir was
ausdenken.

Aber das die Funktion checkdate() keine Fehlermeldung gibt, ist äußerst
gemein!!!
Beispiel:

$test = "2z3.04.1998";
$a = explode(".", $test);
if(!checkdate($a[1], $a[0], $a[2])){
 echo "falsch";
}else{
 echo "OK";
}

Da kommt "OK" bei raus... also kann man mit checkdate() den größten Blödsinn
auf Richtigkeit des Datums(!) testen lassen, und die Funktion sagt, das
alles in Ordnung ist.... super.
Was passiert?
Beim übergeben von "2z3" an die Funktion wird daraus ein Integer. Ich nehme
mal an, das in dem Beispiel dann das Datum 2.04.1998 getestet und für gut
befunden wird. Das ist doch echt gemein sowas...


php::bar PHP Wiki   -   Listenarchive