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

回答編集履歴

2

修正

2016/04/21 03:13

投稿

tkturbo
tkturbo

スコア5572

answer CHANGED
@@ -79,5 +79,5 @@
79
79
  ```
80
80
  で、function checkの戻り値(boolean)を有効活用するならhtml側ではこんな感じ?
81
81
  ```html
82
- <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->getErrData() : $Result->success; ?></p>
82
+ <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->success : $Result->getErrData(); ?></p>
83
83
  ```

1

質問者ソースを一部添削

2016/04/21 03:13

投稿

tkturbo
tkturbo

スコア5572

answer CHANGED
@@ -22,4 +22,62 @@
22
22
  //return $ret;
23
23
  }
24
24
  ```
25
- こんなふうに。
25
+ こんなふうに。
26
+
27
+ ■追記
28
+
29
+ 「『function check』の戻り値はbooleanにしたい」とか言われてしまったので、質問者ソースを部分的に添削してみます。
30
+ まずはphp側:class Result
31
+ ```php
32
+ class Result{
33
+ public $errData;
34
+
35
+ const success = "アップロード成功!"; // 定数として成功時メッセージを定義
36
+
37
+ //使わない変数は邪魔です。消しましょう。
38
+ //public $filename = array('certification','cert_seal','citizen');
39
+
40
+ /* 使ってないメソッドは邪魔です。消しましょう。
41
+ public function first(){
42
+ $this->check($filename[0]);
43
+ $this->check($filename[1]);
44
+ $this->check($filename[2]);
45
+ }
46
+ */
47
+
48
+ function check($_filename){
49
+ // $ret = false;//一番最後にいかない限りfalseを返す // ←これ実はいらないでしょ?
50
+ if(is_uploaded_file($_FILES[$_filename]["tmp_name"])){
51
+ if(preg_match("(.+\.(jpg|pdf|png))",$_FILES[$_filename]["name"])){
52
+ $filesize = filesize($_FILES[$_filename]['tmp_name']);
53
+ if($filesize <= 2097152){
54
+ // $this->errData="アップロード成功!"; // 定数で持つので不要。
55
+ // $ret=true; // ↓これでいいでしょ?true返すのはこのブロックだけなんだから。
56
+ return true;
57
+ } else {
58
+ $this->errData="ファイルサイズが大きすぎますので2MB以下にしてください。";
59
+ }
60
+ } else {
61
+ $this->errData="jpg,pdf,png の形式ではありません。jpg,pdf,png形式のファイルのみアップロードできます。";
62
+ }
63
+ } else {
64
+ $this->errData="ファイルが参照されていません。";
65
+ }
66
+ // return $ret; // ↓これでいいでしょ?
67
+ return false;
68
+ }
69
+
70
+ function getErrData(){
71
+ /* ここのコードはゴミでしょ?消しましょう。
72
+ $errData['certification_err']="テスト1";
73
+ $errData['cert_seal_err']="テスト2";
74
+ $errData['citizen_err']="テスト3";
75
+ */
76
+ return $this->errData;
77
+ }
78
+ }
79
+ ```
80
+ で、function checkの戻り値(boolean)を有効活用するならhtml側ではこんな感じ?
81
+ ```html
82
+ <p>引数に<?php echo $filename[0]; ?>を指定した場合の処理結果は<?php echo $Result->check($filename[0]) ? $Result->getErrData() : $Result->success; ?></p>
83
+ ```