質問編集履歴
2
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
##解決したいこと
|
2
|
-
タイトルの通りですが、checkdate関数でバリデーションした時、Notice: Undefined offsetエラーが出ます。
|
2
|
+
タイトルの通りですが、生年月日のバリデーションチェックにおいて、checkdate関数でバリデーションした時、Notice: Undefined offsetエラーが出ます。
|
3
|
+
空で送信→offsetエラー
|
4
|
+
正しい形式の2020-1-1などで送信→エラーなし
|
5
|
+
あああなど、文字列を送信→Warning: checkdate() expects parameter 3 to be intエラー
|
3
6
|
|
4
7
|
以下バリデーション
|
5
8
|
|
@@ -12,8 +15,8 @@
|
|
12
15
|
$errors['birth'] = "誕生日は必須です。また、存在する年月日を入力してください。※形式にも注意";
|
13
16
|
}
|
14
17
|
```
|
18
|
+

|
15
|
-

|
16
|
-
|
17
20
|
##調べたこと
|
18
21
|
Notice: Undefined offsetは、配列で存在しない位置のインデックスを参照したときに発生する。
|
19
22
|
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
$birth = filter_input(INPUT_POST,'birth');
|
8
8
|
以下略
|
9
9
|
生年月日のバリデーション
|
10
|
-
list($
|
10
|
+
list($Y, $m, $d) = explode('-', $birth);
|
11
11
|
if(empty($birth) || !checkdate($m, $d, $Y) === true) {
|
12
12
|
$errors['birth'] = "誕生日は必須です。また、存在する年月日を入力してください。※形式にも注意";
|
13
13
|
}
|