回答編集履歴

2

修正

2016/04/21 03:13

投稿

tkturbo
tkturbo

スコア5572

test CHANGED
@@ -160,6 +160,6 @@
160
160
 
161
161
  ```html
162
162
 
163
- <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->getErrData() : $Result->success; ?></p>
163
+ <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->success : $Result->getErrData(); ?></p>
164
164
 
165
165
  ```

1

質問者ソースを一部添削

2016/04/21 03:13

投稿

tkturbo
tkturbo

スコア5572

test CHANGED
@@ -47,3 +47,119 @@
47
47
  ```
48
48
 
49
49
  こんなふうに。
50
+
51
+
52
+
53
+ ■追記
54
+
55
+
56
+
57
+ 「『function check』の戻り値はbooleanにしたい」とか言われてしまったので、質問者ソースを部分的に添削してみます。
58
+
59
+ まずはphp側:class Result
60
+
61
+ ```php
62
+
63
+ class Result{
64
+
65
+ public $errData;
66
+
67
+
68
+
69
+ const success = "アップロード成功!"; // 定数として成功時メッセージを定義
70
+
71
+
72
+
73
+ //使わない変数は邪魔です。消しましょう。
74
+
75
+ //public $filename = array('certification','cert_seal','citizen');
76
+
77
+
78
+
79
+ /* 使ってないメソッドは邪魔です。消しましょう。
80
+
81
+ public function first(){
82
+
83
+ $this->check($filename[0]);
84
+
85
+ $this->check($filename[1]);
86
+
87
+ $this->check($filename[2]);
88
+
89
+ }
90
+
91
+ */
92
+
93
+
94
+
95
+ function check($_filename){
96
+
97
+ // $ret = false;//一番最後にいかない限りfalseを返す // ←これ実はいらないでしょ?
98
+
99
+ if(is_uploaded_file($_FILES[$_filename]["tmp_name"])){
100
+
101
+ if(preg_match("(.+\.(jpg|pdf|png))",$_FILES[$_filename]["name"])){
102
+
103
+ $filesize = filesize($_FILES[$_filename]['tmp_name']);
104
+
105
+ if($filesize <= 2097152){
106
+
107
+ // $this->errData="アップロード成功!"; // 定数で持つので不要。
108
+
109
+ // $ret=true; // ↓これでいいでしょ?true返すのはこのブロックだけなんだから。
110
+
111
+ return true;
112
+
113
+ } else {
114
+
115
+ $this->errData="ファイルサイズが大きすぎますので2MB以下にしてください。";
116
+
117
+ }
118
+
119
+ } else {
120
+
121
+ $this->errData="jpg,pdf,png の形式ではありません。jpg,pdf,png形式のファイルのみアップロードできます。";
122
+
123
+ }
124
+
125
+ } else {
126
+
127
+ $this->errData="ファイルが参照されていません。";
128
+
129
+ }
130
+
131
+ // return $ret; // ↓これでいいでしょ?
132
+
133
+ return false;
134
+
135
+ }
136
+
137
+
138
+
139
+ function getErrData(){
140
+
141
+ /* ここのコードはゴミでしょ?消しましょう。
142
+
143
+ $errData['certification_err']="テスト1";
144
+
145
+ $errData['cert_seal_err']="テスト2";
146
+
147
+ $errData['citizen_err']="テスト3";
148
+
149
+ */
150
+
151
+ return $this->errData;
152
+
153
+ }
154
+
155
+ }
156
+
157
+ ```
158
+
159
+ で、function checkの戻り値(boolean)を有効活用するならhtml側ではこんな感じ?
160
+
161
+ ```html
162
+
163
+ <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->getErrData() : $Result->success; ?></p>
164
+
165
+ ```