soymailでのエラー 投稿する

投稿者:s_sato  投稿日時:2026-06-12 09:27:41
SOY Mail2.2.0でユーザーの編集を行おうとしたら以下のエラーが出ました。

Uncaught TypeError: mktime(): Argument #6 ($year) must be of type ?int, string given in /home/***/www/***/app/webapp/mail/pages/User/DetailPage.class.php:109 Stack trace: #0 /home/***/www/***/app/webapp/mail/pages/User/DetailPage.class.php(109): mktime() #1 /home/***/www/***/app/webapp/mail/pages/User/DetailPage.class.php(18): DetailPage->buildForm() #2 /home/***/www/***/common/lib/soy2_build.min.php(4010): DetailPage->__construct() #3 /home/***/www/***/app/webapp/mail/admin.php(146): SOY2HTMLFactory::createInstance() #4 /home/***/www/***/app/base/CMSApplication.class.php(436): SOYMailApplication->main() #5 /home/***/www/***/app/index.php(9): CMSApplication::run() #6 {main} thrown

しばらく触ってなかったのでどの時点で出たのかがわからず申し訳ありません。
対処方法がありましたらよろしくお願いいたします。

SOYCMS 3.24.2
SoyMail 2.2.0
PHP 8.3.31
投稿者:齋藤毅  投稿日時:2026-06-12 09:35:40
/home/***/www/***/app/webapp/mail/pages/User/DetailPage.class.php
の109行目に
$birthday = mktime(0,0,0,$birthArray[1], $birthArray[2], $birthArray[0]);
がありまして、こちらを
$y = (isset($birthArray[0])) ? (int)$birthArray[0] : 0;
$m = (isset($birthArray[1])) ? (int)$birthArray[1] : 0;
$d = (isset($birthArray[2])) ? (int)$birthArray[2] : 0;
$birthday = mktime(0,0,0,$m, $d, $y);
に変更するとどうでしょうか?

応急処置的な対応になります。
投稿者:s_sato  投稿日時:2026-06-12 09:49:43
早速の対応ありがとうございます!
無事にエラーは消えました!
ログインして投稿する