質問編集履歴

5

コードと質問を見やすく致しました

2019/05/02 09:56

投稿

meka
meka

スコア23

test CHANGED
File without changes
test CHANGED
@@ -116,6 +116,8 @@
116
116
 
117
117
  } ?></div>
118
118
 
119
+   //本来ここではなく、このファイルの上の方でこちらのコードを書きたいです。
120
+
119
121
 
120
122
 
121
123
  </form>
@@ -252,6 +254,8 @@
252
254
 
253
255
  echo $price["カラム名"];
254
256
 
257
+   //こちらの結果を return で返して(index.php)の任意の位置で表示したいです。
258
+
255
259
  }
256
260
 
257
261
  }

4

コードと質問を見やすく致しました

2019/05/02 09:56

投稿

meka
meka

スコア23

test CHANGED
File without changes
test CHANGED
@@ -10,17 +10,27 @@
10
10
 
11
11
 
12
12
 
13
- 問題点として Undefined index: date~ のエラーが出ていることです。おそらく初期化の設定をしないとダメなんだろうな?とか予測を立てていますが、いくらやっても上手くいきません。
14
-
15
- ゴチャゴチャになっしまったのでindex.phpの変数は一回消しましたが、search.phpの結果をindex.phpの方の任意の位置に表示するにはどのような記述必要になりますでしょうか? 問題点がズレてい可能性もあるのどなたかご教授お願い致します。
13
+ 問題点とし <label> 日付: <input type="date" name="date"></label> で選択した日付がPOSTすると保持されず日付undefindになることです。
14
+
15
+
16
+
16
-
17
+ こちらに掲載したコードでエラーは出ませんが、実現したいことは(index.php)の<?phpif($_SERVER['REQUEST_METHOD'] === 'POST') {$search->post();を(index.php)の上の方で書いて、(search.php)の処理にてreturnで結果を返す。その結果を(index.php)の任意の場所で表示するということです。
18
+
19
+
20
+
17
-
21
+ POSTしてretutn処理すると消えるのでreturn処理でデータを返す方法をご教授お願いできますでしょうか?
18
-
22
+
23
+
24
+
25
+
26
+
19
- (追記)
27
+ 補足情報:
20
-
28
+
29
+
30
+
21
- ローカル開発環境で練習しております。
31
+ - ローカル開発環境で練習してます。
32
+
22
-
33
+ - POSTの関係ないメソッドのrerun処理は問題なくできています。
23
-
24
34
 
25
35
  ### 発生している問題・エラーメッセージ
26
36
 
@@ -28,7 +38,7 @@
28
38
 
29
39
  ```
30
40
 
31
- Notice: Undefined index: date in /home/vagrant/フォルダ名/search.php on line 47
41
+ Notice: Undefined variable
32
42
 
33
43
  ```
34
44
 
@@ -38,41 +48,33 @@
38
48
 
39
49
 
40
50
 
41
- ```//ファイル名 index.php
51
+ //ファイル名 index.php
52
+
53
+
54
+
42
-
55
+ ```php
43
-
44
56
 
45
57
  <?php
46
58
 
47
59
 
48
60
 
49
- require_once(__DIR__ . '/config.php');
61
+ require_once(__DIR__ . '/config.php');
50
-
62
+
51
- require_once(__DIR__ . '/search.php');
63
+ require_once(__DIR__ . '/search.php');
52
-
53
-
54
-
64
+
65
+
66
+
55
- try {
67
+ try {
56
68
 
57
69
  $search = new \SearchDate\Price();
58
70
 
59
- } catch (Exception $e) {
71
+ } catch (Exception $e) {
60
72
 
61
73
  echo $e->getMessage();
62
74
 
63
75
  exit;
64
76
 
65
- }
77
+ }
66
-
67
-
68
-
69
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
70
-
71
- $search->post();
72
-
73
- };
74
-
75
-
76
78
 
77
79
 
78
80
 
@@ -84,11 +86,11 @@
84
86
 
85
87
  <head>
86
88
 
87
- <meta charset="utf-8">
89
+ <meta charset="utf-8">
88
-
90
+
89
- <title>練習サイト</title>
91
+ <title>練習サイト</title>
90
-
92
+
91
- <link rel="stylesheet" href="styles.css">
93
+ <link rel="stylesheet" href="styles.css">
92
94
 
93
95
  </head>
94
96
 
@@ -96,19 +98,27 @@
96
98
 
97
99
 
98
100
 
99
- <form action="" method="post">
101
+ <form action="" method="post">
100
-
102
+
101
- <label> 日付: <input type="date" name="date"></label>
103
+ <label> 日付: <input type="date" name="date"></label>
102
-
104
+
103
- <input type="submit" value="検索">
105
+ <input type="submit" value="検索">
106
+
107
+
108
+
104
-
109
+ <div>サンプル1</div>
110
+
111
+ <div>サンプル2</div>
112
+
113
+ <div><?php if ($_SERVER['REQUEST_METHOD'] === 'POST') {
114
+
115
+ $search->post();
116
+
117
+ } ?></div>
118
+
119
+
120
+
105
- </form>
121
+ </form>
106
-
107
- <div>サンプル文1</div>
108
-
109
- <div>サンプル文2</div>
110
-
111
- <div>ここに結果を表示させたいです</div>
112
122
 
113
123
 
114
124
 
@@ -118,11 +128,13 @@
118
128
 
119
129
 
120
130
 
131
+ ```
132
+
121
133
 
122
134
 
123
135
  //ファイル名 search.php
124
136
 
125
-
137
+ ```php
126
138
 
127
139
  <?php
128
140
 
@@ -134,140 +146,148 @@
134
146
 
135
147
  class Price {
136
148
 
137
- private $_db;
138
-
139
-
140
-
141
- public function __construct() {
142
-
143
- $this->_connectDB();
144
-
145
- $this->_createToken();
146
-
147
- }
148
-
149
-
150
-
151
- private function _connectDB() {
152
-
153
- try {
154
-
155
- $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
156
-
157
- $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
158
-
159
- } catch (\PDOException $e){
160
-
161
- throw new \Exception('Faild to connect DB');
162
-
163
- }
164
-
165
- }
166
-
167
-
168
-
169
- private function _createToken() {
170
-
171
- if (!isset($_SESSION['token'])) {
172
-
173
- $_SESSION['token'] =
174
-
175
- bin2hex(openssl_random_pseudo_bytes(16));
176
-
177
- }
178
-
179
- }
180
-
181
-
182
-
183
- private function _validateSelect() {
184
-
185
- if (
186
-
187
- !isset($_POST['date'])
188
-
189
- ) {
190
-
191
- throw new \Exception('invalid search!');
192
-
193
- }
194
-
195
- }
196
-
197
-
198
-
199
- private function _validateToken() {
200
-
201
- if (
202
-
203
- !isset($_SESSION['token'])
204
-
205
- ) {
206
-
207
- throw new \Exception('invalid token!');
208
-
209
- }
210
-
211
- }
212
-
213
-
214
-
215
- public function _searchDate() {
216
-
217
-
218
-
219
- $findDate = $_POST["date"];
220
-
221
- $sql = "select カラム名 from テーブル名 where カラム名(日付) = '$findDate'";
222
-
223
-
224
-
225
- $res = $this->_db->query($sql);
226
-
227
- $result = $res->fetch(\PDO::FETCH_ASSOC);
228
-
229
- // var_dump($result); ←ここで結果表示確認できています。
230
-
231
- // echo $result["カラム名"]; ←ここで結果表示確認できています。
232
-
233
- // exit;
234
-
235
- return $result;
236
-
237
-
238
-
239
- }
240
-
241
-
242
-
243
- public function post() {
244
-
245
- try {
246
-
247
-
248
-
249
- $this->_validateSelect();
250
-
251
- $this->_validateToken();
252
-
253
- $this->_searchDate();
254
-
255
-
256
-
257
- } catch (\Exception $e) {
258
-
259
- header('Location: http://' . $_SERVER['HTTP_HOST']);
260
-
261
- }
262
-
263
- exit;
264
-
265
- }
149
+ private $_db;
150
+
151
+
152
+
153
+ public function __construct() {
154
+
155
+ $this->_connectDB();
156
+
157
+ $this->_createToken();
158
+
159
+ }
160
+
161
+
162
+
163
+ private function _connectDB() {
164
+
165
+ try {
166
+
167
+ $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
168
+
169
+ $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
170
+
171
+ } catch (\PDOException $e){
172
+
173
+ throw new \Exception('Faild to connect DB');
174
+
175
+ }
176
+
177
+ }
178
+
179
+
180
+
181
+ private function _createToken() {
182
+
183
+
184
+
185
+ if (!isset($_SESSION['token'])) {
186
+
187
+ $_SESSION['token'] =
188
+
189
+ bin2hex(openssl_random_pseudo_bytes(16));
190
+
191
+ }
192
+
193
+ }
194
+
195
+
196
+
197
+ private function _validateSelect() {
198
+
199
+
200
+
201
+ $date = filter_input(INPUT_POST,'date',FILTER_SANITIZE_NUMBER_INT);
202
+
203
+ if ($date == NULL || FALSE) {
204
+
205
+ echo '日付を指定してください';
206
+
207
+ exit;
208
+
209
+ }
210
+
211
+ }
212
+
213
+
214
+
215
+ private function _validateToken() {
216
+
217
+
218
+
219
+ if (!isset($_SESSION['token'])) {
220
+
221
+ throw new \Exception('invalid token!');
222
+
223
+ }
224
+
225
+ }
226
+
227
+
228
+
229
+ public function _searchDate() {
230
+
231
+
232
+
233
+ $date = filter_input(INPUT_POST,'date',FILTER_SANITIZE_NUMBER_INT);
234
+
235
+ $res = $this->_db->prepare('select カラム名 from テーブル名 where カラム名 = :date');
236
+
237
+ $res->bindValue(':date', $date, \PDO::PARAM_STR);
238
+
239
+ $res->execute();
240
+
241
+
242
+
243
+ $price = $res->fetch(\PDO::FETCH_ASSOC);
244
+
245
+
246
+
247
+ if ($price == false) {
248
+
249
+ echo '該当なし';
250
+
251
+ } else {
252
+
253
+ echo $price["カラム名"];
254
+
255
+ }
256
+
257
+ }
258
+
259
+
260
+
261
+ public function post() {
262
+
263
+ try {
264
+
265
+
266
+
267
+ $this->_validateSelect();
268
+
269
+ $this->_validateToken();
270
+
271
+ $this->_searchDate();
272
+
273
+
274
+
275
+ } catch (\Exception $e) {
276
+
277
+ header('Location: http://' . $_SERVER['HTTP_HOST']);
278
+
279
+ }
280
+
281
+ exit;
282
+
283
+ }
266
284
 
267
285
 
268
286
 
269
287
  }
270
288
 
289
+
290
+
271
291
  ```
272
292
 
273
293
 

3

関連タグを修正いたしました

2019/05/02 09:45

投稿

meka
meka

スコア23

test CHANGED
File without changes
test CHANGED
File without changes

2

インテンドをつけました

2019/05/01 08:19

投稿

meka
meka

スコア23

test CHANGED
File without changes
test CHANGED
@@ -46,228 +46,228 @@
46
46
 
47
47
 
48
48
 
49
- require_once(__DIR__ . '/config.php');
50
-
51
- require_once(__DIR__ . '/search.php');
52
-
53
-
54
-
55
- try {
56
-
57
- $search = new \SearchDate\Price();
58
-
59
- } catch (Exception $e) {
60
-
61
- echo $e->getMessage();
62
-
63
- exit;
49
+ require_once(__DIR__ . '/config.php');
50
+
51
+ require_once(__DIR__ . '/search.php');
52
+
53
+
54
+
55
+ try {
56
+
57
+ $search = new \SearchDate\Price();
58
+
59
+ } catch (Exception $e) {
60
+
61
+ echo $e->getMessage();
62
+
63
+ exit;
64
+
65
+ }
66
+
67
+
68
+
69
+ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
70
+
71
+ $search->post();
72
+
73
+ };
74
+
75
+
76
+
77
+
78
+
79
+ ?>
80
+
81
+ <!DOCTYPE html>
82
+
83
+ <html lang="ja">
84
+
85
+ <head>
86
+
87
+ <meta charset="utf-8">
88
+
89
+ <title>練習サイト</title>
90
+
91
+ <link rel="stylesheet" href="styles.css">
92
+
93
+ </head>
94
+
95
+ <body>
96
+
97
+
98
+
99
+ <form action="" method="post">
100
+
101
+ <label> 日付: <input type="date" name="date"></label>
102
+
103
+ <input type="submit" value="検索">
104
+
105
+ </form>
106
+
107
+ <div>サンプル文1</div>
108
+
109
+ <div>サンプル文2</div>
110
+
111
+ <div>ここに結果を表示させたいです</div>
112
+
113
+
114
+
115
+ </body>
116
+
117
+ </html>
118
+
119
+
120
+
121
+
122
+
123
+ //ファイル名 search.php
124
+
125
+
126
+
127
+ <?php
128
+
129
+
130
+
131
+ namespace SearchDate;
132
+
133
+
134
+
135
+ class Price {
136
+
137
+ private $_db;
138
+
139
+
140
+
141
+ public function __construct() {
142
+
143
+ $this->_connectDB();
144
+
145
+ $this->_createToken();
146
+
147
+ }
148
+
149
+
150
+
151
+ private function _connectDB() {
152
+
153
+ try {
154
+
155
+ $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
156
+
157
+ $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
158
+
159
+ } catch (\PDOException $e){
160
+
161
+ throw new \Exception('Faild to connect DB');
162
+
163
+ }
164
+
165
+ }
166
+
167
+
168
+
169
+ private function _createToken() {
170
+
171
+ if (!isset($_SESSION['token'])) {
172
+
173
+ $_SESSION['token'] =
174
+
175
+ bin2hex(openssl_random_pseudo_bytes(16));
176
+
177
+ }
178
+
179
+ }
180
+
181
+
182
+
183
+ private function _validateSelect() {
184
+
185
+ if (
186
+
187
+ !isset($_POST['date'])
188
+
189
+ ) {
190
+
191
+ throw new \Exception('invalid search!');
192
+
193
+ }
194
+
195
+ }
196
+
197
+
198
+
199
+ private function _validateToken() {
200
+
201
+ if (
202
+
203
+ !isset($_SESSION['token'])
204
+
205
+ ) {
206
+
207
+ throw new \Exception('invalid token!');
208
+
209
+ }
210
+
211
+ }
212
+
213
+
214
+
215
+ public function _searchDate() {
216
+
217
+
218
+
219
+ $findDate = $_POST["date"];
220
+
221
+ $sql = "select カラム名 from テーブル名 where カラム名(日付) = '$findDate'";
222
+
223
+
224
+
225
+ $res = $this->_db->query($sql);
226
+
227
+ $result = $res->fetch(\PDO::FETCH_ASSOC);
228
+
229
+ // var_dump($result); ←ここで結果表示確認できています。
230
+
231
+ // echo $result["カラム名"]; ←ここで結果表示確認できています。
232
+
233
+ // exit;
234
+
235
+ return $result;
236
+
237
+
238
+
239
+ }
240
+
241
+
242
+
243
+ public function post() {
244
+
245
+ try {
246
+
247
+
248
+
249
+ $this->_validateSelect();
250
+
251
+ $this->_validateToken();
252
+
253
+ $this->_searchDate();
254
+
255
+
256
+
257
+ } catch (\Exception $e) {
258
+
259
+ header('Location: http://' . $_SERVER['HTTP_HOST']);
260
+
261
+ }
262
+
263
+ exit;
264
+
265
+ }
266
+
267
+
64
268
 
65
269
  }
66
270
 
67
-
68
-
69
- if ($_SERVER['REQUEST_METHOD'] === 'POST') {
70
-
71
- $search->post();
72
-
73
- };
74
-
75
-
76
-
77
-
78
-
79
- ?>
80
-
81
- <!DOCTYPE html>
82
-
83
- <html lang="ja">
84
-
85
- <head>
86
-
87
- <meta charset="utf-8">
88
-
89
- <title>練習サイト</title>
90
-
91
- <link rel="stylesheet" href="styles.css">
92
-
93
- </head>
94
-
95
- <body>
96
-
97
-
98
-
99
- <form action="" method="post">
100
-
101
- <label> 日付: <input type="date" name="date"></label>
102
-
103
- <input type="submit" value="検索">
104
-
105
- </form>
106
-
107
- <div>サンプル文1</div>
108
-
109
- <div>サンプル文2</div>
110
-
111
- <div>ここに結果を表示させたいです</div>
112
-
113
-
114
-
115
- </body>
116
-
117
- </html>
118
-
119
-
120
-
121
-
122
-
123
- //ファイル名 search.php
124
-
125
-
126
-
127
- <?php
128
-
129
-
130
-
131
- namespace SearchDate;
132
-
133
-
134
-
135
- class Price {
136
-
137
- private $_db;
138
-
139
-
140
-
141
- public function __construct() {
142
-
143
- $this->_connectDB();
144
-
145
- $this->_createToken();
146
-
147
- }
148
-
149
-
150
-
151
- private function _connectDB() {
152
-
153
- try {
154
-
155
- $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
156
-
157
- $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
158
-
159
- } catch (\PDOException $e){
160
-
161
- throw new \Exception('Faild to connect DB');
162
-
163
- }
164
-
165
- }
166
-
167
-
168
-
169
- private function _createToken() {
170
-
171
- if (!isset($_SESSION['token'])) {
172
-
173
- $_SESSION['token'] =
174
-
175
- bin2hex(openssl_random_pseudo_bytes(16));
176
-
177
- }
178
-
179
- }
180
-
181
-
182
-
183
- private function _validateSelect() {
184
-
185
- if (
186
-
187
- !isset($_POST['date'])
188
-
189
- ) {
190
-
191
- throw new \Exception('invalid search!');
192
-
193
- }
194
-
195
- }
196
-
197
-
198
-
199
- private function _validateToken() {
200
-
201
- if (
202
-
203
- !isset($_SESSION['token'])
204
-
205
- ) {
206
-
207
- throw new \Exception('invalid token!');
208
-
209
- }
210
-
211
- }
212
-
213
-
214
-
215
- public function _searchDate() {
216
-
217
-
218
-
219
- $findDate = $_POST["date"];
220
-
221
- $sql = "select カラム名 from テーブル名 where カラム名(日付) = '$findDate'";
222
-
223
-
224
-
225
- $res = $this->_db->query($sql);
226
-
227
- $result = $res->fetch(\PDO::FETCH_ASSOC);
228
-
229
- // var_dump($result); ←ここで結果表示確認できています。
230
-
231
- // echo $result["カラム名"]; ←ここで結果表示確認できています。
232
-
233
- // exit;
234
-
235
- return $result;
236
-
237
-
238
-
239
- }
240
-
241
-
242
-
243
- public function post() {
244
-
245
- try {
246
-
247
-
248
-
249
- $this->_validateSelect();
250
-
251
- $this->_validateToken();
252
-
253
- $this->_searchDate();
254
-
255
-
256
-
257
- } catch (\Exception $e) {
258
-
259
- header('Location: http://' . $_SERVER['HTTP_HOST']);
260
-
261
- }
262
-
263
- exit;
264
-
265
- }
266
-
267
-
268
-
269
- }
270
-
271
271
  ```
272
272
 
273
273
 

1

インテンドを付けました。

2019/05/01 07:11

投稿

meka
meka

スコア23

test CHANGED
File without changes
test CHANGED
@@ -16,13 +16,19 @@
16
16
 
17
17
 
18
18
 
19
+ (追記)
20
+
21
+ ※ローカル開発環境で練習しております。
22
+
23
+
24
+
19
25
  ### 発生している問題・エラーメッセージ
20
26
 
21
27
 
22
28
 
23
29
  ```
24
30
 
25
- Undefined index: date
31
+ Notice: Undefined index: date in /home/vagrant/フォルダ名/search.php on line 47
26
32
 
27
33
  ```
28
34
 
@@ -48,13 +54,13 @@
48
54
 
49
55
  try {
50
56
 
51
- $search = new \SearchDate\Price();
57
+ $search = new \SearchDate\Price();
52
58
 
53
59
  } catch (Exception $e) {
54
60
 
55
- echo $e->getMessage();
61
+ echo $e->getMessage();
56
-
62
+
57
- exit;
63
+ exit;
58
64
 
59
65
  }
60
66
 
@@ -78,11 +84,11 @@
78
84
 
79
85
  <head>
80
86
 
81
- <meta charset="utf-8">
87
+ <meta charset="utf-8">
82
-
88
+
83
- <title>練習サイト</title>
89
+ <title>練習サイト</title>
84
-
90
+
85
- <link rel="stylesheet" href="styles.css">
91
+ <link rel="stylesheet" href="styles.css">
86
92
 
87
93
  </head>
88
94
 
@@ -90,19 +96,19 @@
90
96
 
91
97
 
92
98
 
93
- <form action="" method="post">
99
+ <form action="" method="post">
94
-
100
+
95
- <label> 日付: <input type="date" name="date"></label>
101
+ <label> 日付: <input type="date" name="date"></label>
96
-
102
+
97
- <input type="submit" value="検索">
103
+ <input type="submit" value="検索">
98
-
104
+
99
- </form>
105
+ </form>
100
-
106
+
101
- <div>サンプル文1</div>
107
+ <div>サンプル文1</div>
102
-
108
+
103
- <div>サンプル文2</div>
109
+ <div>サンプル文2</div>
104
-
110
+
105
- <div>ここに結果を表示させたいです</div>
111
+ <div>ここに結果を表示させたいです</div>
106
112
 
107
113
 
108
114
 
@@ -128,140 +134,140 @@
128
134
 
129
135
  class Price {
130
136
 
131
- private $_db;
137
+ private $_db;
132
-
133
-
134
-
138
+
139
+
140
+
135
- public function __construct() {
141
+ public function __construct() {
136
-
142
+
137
- $this->_connectDB();
143
+ $this->_connectDB();
138
-
144
+
139
- $this->_createToken();
145
+ $this->_createToken();
146
+
147
+ }
148
+
149
+
150
+
151
+ private function _connectDB() {
152
+
153
+ try {
154
+
155
+ $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
156
+
157
+ $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
158
+
159
+ } catch (\PDOException $e){
160
+
161
+ throw new \Exception('Faild to connect DB');
162
+
163
+ }
164
+
165
+ }
166
+
167
+
168
+
169
+ private function _createToken() {
170
+
171
+ if (!isset($_SESSION['token'])) {
172
+
173
+ $_SESSION['token'] =
174
+
175
+ bin2hex(openssl_random_pseudo_bytes(16));
176
+
177
+ }
178
+
179
+ }
180
+
181
+
182
+
183
+ private function _validateSelect() {
184
+
185
+ if (
186
+
187
+ !isset($_POST['date'])
188
+
189
+ ) {
190
+
191
+ throw new \Exception('invalid search!');
192
+
193
+ }
194
+
195
+ }
196
+
197
+
198
+
199
+ private function _validateToken() {
200
+
201
+ if (
202
+
203
+ !isset($_SESSION['token'])
204
+
205
+ ) {
206
+
207
+ throw new \Exception('invalid token!');
208
+
209
+ }
210
+
211
+ }
212
+
213
+
214
+
215
+ public function _searchDate() {
216
+
217
+
218
+
219
+ $findDate = $_POST["date"];
220
+
221
+ $sql = "select カラム名 from テーブル名 where カラム名(日付) = '$findDate'";
222
+
223
+
224
+
225
+ $res = $this->_db->query($sql);
226
+
227
+ $result = $res->fetch(\PDO::FETCH_ASSOC);
228
+
229
+ // var_dump($result); ←ここで結果表示確認できています。
230
+
231
+ // echo $result["カラム名"]; ←ここで結果表示確認できています。
232
+
233
+ // exit;
234
+
235
+ return $result;
236
+
237
+
238
+
239
+ }
240
+
241
+
242
+
243
+ public function post() {
244
+
245
+ try {
246
+
247
+
248
+
249
+ $this->_validateSelect();
250
+
251
+ $this->_validateToken();
252
+
253
+ $this->_searchDate();
254
+
255
+
256
+
257
+ } catch (\Exception $e) {
258
+
259
+ header('Location: http://' . $_SERVER['HTTP_HOST']);
260
+
261
+ }
262
+
263
+ exit;
264
+
265
+ }
266
+
267
+
140
268
 
141
269
  }
142
270
 
143
-
144
-
145
- private function _connectDB() {
146
-
147
- try {
148
-
149
- $this->_db = new \PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD);
150
-
151
- $this->_db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
152
-
153
- } catch (\PDOException $e){
154
-
155
- throw new \Exception('Faild to connect DB');
156
-
157
- }
158
-
159
- }
160
-
161
-
162
-
163
- private function _createToken() {
164
-
165
- if (!isset($_SESSION['token'])) {
166
-
167
- $_SESSION['token'] =
168
-
169
- bin2hex(openssl_random_pseudo_bytes(16));
170
-
171
- }
172
-
173
- }
174
-
175
-
176
-
177
- private function _validateSelect() {
178
-
179
- if (
180
-
181
- !isset($_POST['date'])
182
-
183
- ) {
184
-
185
- throw new \Exception('invalid search!');
186
-
187
- }
188
-
189
- }
190
-
191
-
192
-
193
- private function _validateToken() {
194
-
195
- if (
196
-
197
- !isset($_SESSION['token'])
198
-
199
- ) {
200
-
201
- throw new \Exception('invalid token!');
202
-
203
- }
204
-
205
- }
206
-
207
-
208
-
209
- public function _searchDate() {
210
-
211
-
212
-
213
- $findDate = $_POST["date"];
214
-
215
- $sql = "select カラム名 from テーブル名 where カラム名(日付) = '$findDate'";
216
-
217
-
218
-
219
- $res = $this->_db->query($sql);
220
-
221
- $result = $res->fetch(\PDO::FETCH_ASSOC);
222
-
223
- // var_dump($result); ←ここで結果表示確認できています。
224
-
225
- // echo $result["カラム名"]; ←ここで結果表示確認できています。
226
-
227
- // exit;
228
-
229
- return $result;
230
-
231
-
232
-
233
- }
234
-
235
-
236
-
237
- public function post() {
238
-
239
- try {
240
-
241
-
242
-
243
- $this->_validateSelect();
244
-
245
- $this->_validateToken();
246
-
247
- $this->_searchDate();
248
-
249
-
250
-
251
- } catch (\Exception $e) {
252
-
253
- header('Location: http://' . $_SERVER['HTTP_HOST']);
254
-
255
- }
256
-
257
- exit;
258
-
259
- }
260
-
261
-
262
-
263
- }
264
-
265
271
  ```
266
272
 
267
273