[Tep-j-general] Re: 生年月日の編集エラー

Back to archive index

hamada bungu****@leo*****
2005年 5月 26日 (木) 18:20:13 JST


こんにちわ。

On Thu, 26 May 2005 04:38:33 +0000
"osc _829" <osc_829****@hotma*****> wrote:

> Warning: checkdate() expects parameter 1 to be long, string given in 
> /home/ed102/public_html/account_edit_process.php on line 76

該当行を見ますと、

> if (checkdate(substr(tep_date_raw($dob), 4, 2), substr(tep_date_raw($dob), 6, 2), substr(tep_date_raw($dob), 0, 4))) {

「6文字目から2文字」とか決め打ちしてるんで、字数が変わると上手く取れな
い→取ってくるのが数字じゃなくなってエラーになるみたいです。

一番手っ取り早い対処は、該当行の前に

$dob = ereg_replace("/([0-9])/", "/0\\1/", $dob);

とか書き足すことでしょうか?

非常にダサい処理でなんか嘲笑されそう(^^;ですが、とりあえずこれでエラーは
出なくなりそうな気がします。

$dob = ereg_replace("/([0-9])$", "/0\\1", $dob);

とは(末尾だから)しなくても良いみたいですが、ついでにこの行も足しておけ
ば日も1→01みたいな形式に正規化されます。

はまだ





Tep-j-general メーリングリストの案内
Back to archive index