[PHP-users 28165] Re: checkdate() でエラーが発生する場合としない場合
Keiji Watanabe
watanabe @ help-js.com
2006年 1月 19日 (木) 13:57:23 JST
渡邉です。
> そもそも PHP 4.0.6 に $_REQUEST はなかったと思います.
>
あ、すみません。ソースをいじっています。
実際はこんなソースです。
if (checkdate($kaisai_m,$kaisai_d,$kaisai_y)==false){
--------------------------------------------------
> var_dump( ini_get( "error_reporting"));
> var_dump( ini_get( "display_errors"));
> checkdate($_REQUEST["m"], $_REQUEST["d"], $_REQUEST["y"])
>
> とか位はしてみてもいいんじゃないでしょうか?
var_dump( ini_get( "error_reporting"));
var_dump( ini_get( "display_errors"));
checkdate(a, null, null);
としてみました。
string(4) "2039" string(1) "1"
Warning: checkdate() expects parameter 1 to be long, string given in
/export/home/com/www2/information/test.php on line 4
どちらのサーバもerror_reporting, display_errorsの値は同じなのですが、
片方でのみcheckdateの警告が表示されてしまいます。
これが本来の状態だと思うのですが、"なぜ" 片方のサーバでは表示されない
のかが不思議なんです...
--------------------------------------------------
ちなみに、警告が表示されないサーバでも
checkdate(a, null, null, a);
のようにわざと引数を間違えると
Warning: Wrong parameter count for checkdate() in
/home/life-emotion/life-emotion/demo/html/parknet/V1/information/test.php on
line 4
となるので、設定ではなく、checkdate()の仕様なのではないか、という
気がしてきました。
とりあえずは該当個所のソースを修正して、checkdateの前に数値チェックを
行うようにしたのですが、原因不明で少し気持ち悪いです。
他になにか情報があればよろしくお願いします。
PHP-users メーリングリストの案内