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

質問編集履歴

9

誤字

2018/03/11 01:11

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -415,11 +415,12 @@
415
415
 
416
416
  ```
417
417
 
418
- registaration_form.php (登録フォーム) 一部抜粋 上の確認フォームからエラーメッセージをリダイレクトで受け取っています。
418
+ registaration_form.php (登録フォーム) 一部抜粋
419
419
 
420
+ 上の確認フォームからエラーメッセージをリダイレクトで受け取っています。
421
+
420
422
  順番は registration_form.php → registration_confirm.php
421
423
  registration_confirm.php でエラーがあれば registration_form.php にリダイレクト
422
-
423
424
  ```
424
425
  // エラーメッセージ
425
426
  if (isset($_SESSION['result'])) {

8

追記

2018/03/11 01:11

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -413,4 +413,21 @@
413
413
  )
414
414
  );
415
415
 
416
+ ```
417
+
418
+ registaration_form.php (登録フォーム) 一部抜粋 上の確認フォームからエラーメッセージをリダイレクトで受け取っています。
419
+
420
+ 順番は registration_form.php → registration_confirm.php
421
+ registration_confirm.php でエラーがあれば registration_form.php にリダイレクト
422
+
423
+ ```
424
+ // エラーメッセージ
425
+ if (isset($_SESSION['result'])) {
426
+
427
+ if (count(array($_SESSION['result'])) >= 1) {
428
+
429
+ $result = $_SESSION['result'];
430
+
431
+ }
432
+ }
416
433
  ```

7

誤字

2018/03/11 00:58

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -304,6 +304,10 @@
304
304
 
305
305
  }
306
306
 
307
+
308
+
309
+ ```
310
+
307
311
  registration_confirm.php 一部抜粋
308
312
 
309
313
  ```

6

誤字

2018/03/11 00:52

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
File without changes

5

誤字

2018/03/11 00:51

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -307,6 +307,7 @@
307
307
  registration_confirm.php 一部抜粋
308
308
 
309
309
  ```
310
+
310
311
  // POST時
311
312
  if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') == 'POST') {
312
313
 

4

誤字

2018/03/11 00:50

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -305,6 +305,7 @@
305
305
  }
306
306
 
307
307
  registration_confirm.php 一部抜粋
308
+
308
309
  ```
309
310
  // POST時
310
311
  if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') == 'POST') {

3

コードの追加

2018/03/11 00:50

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -216,4 +216,195 @@
216
216
 
217
217
  ```
218
218
 
219
- ![イメージ説明](0079d54cb1b50e5e39edbd5249e9271a.png)
219
+ ![イメージ説明](0079d54cb1b50e5e39edbd5249e9271a.png)
220
+
221
+
222
+ validation.php
223
+
224
+ ```
225
+ <?php
226
+ require_once('../config/config.php');
227
+
228
+ // バリデーションクラス
229
+ class Validation {
230
+
231
+ // コンストラクタ(construct)
232
+ function check_Validation($input_control = [], $input_data = []) {
233
+
234
+ $result = []; //チェック結果配列
235
+
236
+ foreach ($input_control as $control_name => $info) {
237
+
238
+ // 入力情報が存在するか
239
+ if (array_key_exists($control_name, $input_data)) {
240
+
241
+ $value = $input_data[$control_name];
242
+ $rules = explode("|", $info["rule"]); // バリデーションルールの引き出し
243
+
244
+ foreach ($rules as $r) { // 指定されたルールをループ
245
+
246
+ $rule = explode("-", $r); // ルール設定の切り出し
247
+ $rule_name = $rule[0]; // ルール名
248
+ $rule_setting = $rule[1]; // ルール設定
249
+
250
+
251
+
252
+ switch ($rule_name) {
253
+
254
+ // 入力が空の場合
255
+ case "empty":
256
+ if ($this->empty_check($value)) {
257
+
258
+ $result[$control_name][] = $info["name"].'を入力してください。';
259
+
260
+ }
261
+ break;
262
+
263
+ // 最大文字数のチェック
264
+ case "max":
265
+ if ($this->max_check($value, $rule_setting)) {
266
+
267
+ $result[$control_name][] = $info["name"].'は'.$rule_setting.'文字以内で入力してください。';
268
+
269
+ }
270
+ break;
271
+
272
+
273
+ }
274
+
275
+
276
+ }
277
+
278
+ }
279
+
280
+ }
281
+
282
+ return $result;
283
+
284
+ }
285
+
286
+
287
+
288
+
289
+
290
+ // 空のチェック
291
+ public function empty_check($value = "") {
292
+
293
+ return empty($value);
294
+
295
+ }
296
+
297
+ // 入力文字数のチェック
298
+ public function max_check($value = "", $max = 60) {
299
+
300
+ return mb_strlen($value) > $max;
301
+
302
+ }
303
+
304
+
305
+ }
306
+
307
+ registration_confirm.php 一部抜粋
308
+ ```
309
+ // POST時
310
+ if (filter_input(INPUT_SERVER, 'REQUEST_METHOD') == 'POST') {
311
+
312
+
313
+ $_SESSION["name"] = filter_input(INPUT_POST, 'name');
314
+ $_SESSION["email"] = filter_input(INPUT_POST, 'email');
315
+ $_SESSION["password"] = filter_input(INPUT_POST, 'password');
316
+ $_SESSION["tel"] = filter_input(INPUT_POST, 'tel');
317
+ $_SESSION["prefectures"] = filter_input(INPUT_POST, 'prefectures');
318
+ $_SESSION["hobby"] = filter_input(INPUT_POST, 'hobby', FILTER_DEFAULT,FILTER_REQUIRE_ARRAY);
319
+ $_SESSION["gender"] = filter_input(INPUT_POST, 'gender');
320
+ $_SESSION["contact"] = filter_input(INPUT_POST, 'contact');
321
+
322
+ $name = $_SESSION["name"];
323
+ $email = $_SESSION["email"];
324
+ $password = $_SESSION["password"];
325
+ $tel = $_SESSION["tel"];
326
+ $prefectures = $_SESSION["prefectures"];
327
+ $hobby = $_SESSION["hobby"];
328
+ $gender = $_SESSION["gender"];
329
+ $contact = $_SESSION["contact"];
330
+
331
+
332
+
333
+ // 対象コントロール→バリデーションルール
334
+ $input_control = [
335
+
336
+ "name" => [
337
+
338
+ "name" => "氏名",
339
+ "rule" => "empty|max-60"
340
+
341
+ ],
342
+
343
+ "tel" => [
344
+
345
+ "name" => "電話番号",
346
+ "rule" => "empty|min-10|-|halfSize"
347
+
348
+ ],
349
+
350
+ "password" => [
351
+
352
+ "name" => "パスワード",
353
+ "rule" => "empty|min-8"
354
+
355
+ ],
356
+
357
+ //・・・・以下、対象の入力項目とルールを定義
358
+
359
+ ];
360
+
361
+ $result = new Validation($input_control, $_SESSION);
362
+
363
+ if (count($result) > 0) {
364
+
365
+ $_SESSION['result'] = $result;
366
+ header("location: registration_form.php");
367
+
368
+ } else {
369
+
370
+ $result = array();
371
+
372
+ }
373
+
374
+
375
+
376
+ }
377
+
378
+
379
+
380
+
381
+ //
382
+ // Twig
383
+ //
384
+
385
+ // Composerで作成されたautoload.phpを読み込む
386
+ require_once ('../vendor/autoload.php');
387
+ // Twig_Loader_Filesystem と Twig instance の生成を読み込む
388
+ require_once('../config/twig.php');
389
+
390
+
391
+ // render
392
+ echo $twig->render('registration_confirm.html', array (
393
+
394
+ 'name' => $name,
395
+ 'email' => $email,
396
+ 'password' => $password,
397
+ 'tel' => $tel,
398
+ 'prefectures' => $prefectures,
399
+ 'hobby' => $hobby,
400
+ 'gender' => $gender,
401
+ 'contact' => $contact,
402
+
403
+ 'result' => $result,
404
+ 'string' => $string,
405
+
406
+
407
+ )
408
+ );
409
+
410
+ ```

2

バグ画像

2018/03/11 00:49

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -214,4 +214,6 @@
214
214
  }
215
215
 
216
216
 
217
- ```
217
+ ```
218
+
219
+ ![イメージ説明](0079d54cb1b50e5e39edbd5249e9271a.png)

1

追記

2018/03/09 09:20

投稿

dog57
dog57

スコア131

title CHANGED
File without changes
body CHANGED
@@ -83,6 +83,13 @@
83
83
  ```
84
84
 
85
85
  下記のようにまとめてみました。
86
+ まとめたやつは
87
+
88
+ ```php
89
+ require_once('./validation.php');
90
+ name_validation();
91
+ ```
92
+ みたいに使っていこうと思っています。
86
93
  ですが、1個1個メソッドを作るのがとてもめんどうなのですが、
87
94
  1つ1つメソッドを作る以外に、もっとまとめられる方法はありますか?
88
95