回答編集履歴

2

追記

2020/02/18 03:53

投稿

tanat
tanat

スコア18716

test CHANGED
@@ -30,6 +30,76 @@
30
30
 
31
31
 
32
32
 
33
+ もちろん、このままだと常に死んでしまうので
34
+
35
+
36
+
37
+ ```PHP
38
+
39
+ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
40
+
41
+ $nameError = ValidateForm::check_name($_POST['name'],'名前',6);
42
+
43
+ if($nameError){
44
+
45
+ $error['name'] = $nameError;
46
+
47
+ }
48
+
49
+
50
+
51
+ $mailError = ValidateForm::check_mail($_POST['mail'],'メール');
52
+
53
+ if($mailError){
54
+
55
+ $error['mail'] = $mailError;
56
+
57
+ }
58
+
59
+
60
+
61
+ $passwordError = ValidateForm::check_pass($_POST['pass'],'パスワード');
62
+
63
+ if($passwordError){
64
+
65
+ $error['password'] = $passwordError;
66
+
67
+ }
68
+
69
+
70
+
71
+ }
72
+
73
+
74
+
75
+ if(count($error) > 0){
76
+
77
+ //実際にはHTMLの中でforeachと組み合わせてエラー表示をする
78
+
79
+ var_dump($error);
80
+
81
+ die();
82
+
83
+ }
84
+
85
+
86
+
87
+ ```
88
+
89
+
90
+
91
+ みたいにすると、エラーがあるときだけ死にます。
92
+
93
+ まずはここまでの流れを把握してみてください。
94
+
95
+
96
+
97
+ ($errorを参照渡ししたり、スタティックメソッドではなく`ValidateForm->hasErrors()`みたいなメソッドを用意したりするともっとすっきり書くことが出来ます。が、まずは返り値と配列の扱いの基礎的な部分を把握されることをお勧めします。)
98
+
99
+
100
+
101
+
102
+
33
103
  ---
34
104
 
35
105
  このコードが何をしているかは

1

修正

2020/02/18 03:53

投稿

tanat
tanat

スコア18716

test CHANGED
@@ -16,15 +16,9 @@
16
16
 
17
17
 
18
18
 
19
- if(count($error) > 0){
19
+ var_dump($error);
20
20
 
21
- //本来はここでは無く、HTMLの中の適切な部分で$errorをforeachでループさせて表示させる
22
-
23
- var_dump($error);
24
-
25
- die();
21
+ die();
26
-
27
- }
28
22
 
29
23
 
30
24
 
@@ -33,10 +27,6 @@
33
27
 
34
28
 
35
29
  みたいにするとメソッドで返しているエラーを`$error`配列の新しい要素として受け取ることが出来ます。
36
-
37
- 追加した部分では$errorの要素(=発生した具体的なエラー)の数を数えて、一つ以上存在する場合はエラーを表示する判定を行っています。
38
-
39
- (実際の画面ではvar_dump()することは無いので、ここの表示は別途作ってみてください)
40
30
 
41
31
 
42
32