質問するログイン新規登録

質問編集履歴

2

追記

2021/03/07 09:10

投稿

退会済みユーザー
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
+ ![イメージ説明](f5b3d928cd70c78d877b6f52c8361dc0.png)
15
- ![イメージ説明](6ccb8e8c9d322a01dc499bf104c5aa2a.png)
19
+ ![イメージ説明](6dd9d08e62534a07d83ee39903ac59ff.png)
16
-
17
20
  ##調べたこと
18
21
  Notice: Undefined offsetは、配列で存在しない位置のインデックスを参照したときに発生する。
19
22
 

1

追記

2021/03/07 09:10

投稿

退会済みユーザー
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($m, $d, $Y) = explode('-', $birth);
10
+ list($Y, $m, $d) = explode('-', $birth);
11
11
  if(empty($birth) || !checkdate($m, $d, $Y) === true) {
12
12
  $errors['birth'] = "誕生日は必須です。また、存在する年月日を入力してください。※形式にも注意";
13
13
  }