回答編集履歴

2

加筆修正

2019/09/29 06:27

投稿

退会済みユーザー
test CHANGED
@@ -7,3 +7,77 @@
7
7
  テスト環境に適切にphpファイルをアップロードできていないのではないでしょうか。
8
8
 
9
9
  ![イメージ説明](18b77983bdd252699d68afad73742c6f.png)
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ 老婆心ながら気になった点。
18
+
19
+
20
+
21
+ 1)冒頭でhtmlspecialchars()しちゃってる点
22
+
23
+
24
+
25
+ ファイルに書き出す、データベースに記録する、メール送信する、
26
+
27
+ なんて処理を組み合わせる前提であると予想して、
28
+
29
+ html出力用に冒頭で加工してしまうと、
30
+
31
+ ファイルに書き出すとき、データベースに記録するとき、メール送信するときに
32
+
33
+ 支障が出てくるので、
34
+
35
+ html出力する直前にhtmlspecialchars()して、変数ではなるべく保持しないほうがいい。
36
+
37
+ いわゆる「h関数」ってのを定義したりすることが多い。
38
+
39
+
40
+
41
+ [PHP エスケープ処理のためのhtmlspecialcharsの使い方](https://web-dev.xyz/php-htmlspecialchars/)
42
+
43
+
44
+
45
+ 2)冒頭で$genderに格納したのに、判定箇所で`$_POST['gender']`使ってる点
46
+
47
+ そして$csに保存しつつ出力は$gender、いみがわからない。
48
+
49
+ まぁ、おおかた、maleを「男性」などと表示用に置き換える予定の途中だと察するものの。
50
+
51
+
52
+
53
+ 3)フォーム未入力対策が弱い
54
+
55
+
56
+
57
+ ```php
58
+
59
+ $name = '';
60
+
61
+ if (isset($_POST['name']) {
62
+
63
+ $name = $_POST['name'];
64
+
65
+ }
66
+
67
+ ```
68
+
69
+ っていう原始的なやり方、
70
+
71
+ ```php
72
+
73
+ $name = filter_input(INPUT_POST, 'name');
74
+
75
+ ```
76
+
77
+ っていう便利なフィルタ関数を使うやり方、好きな方を選べばいい。
78
+
79
+ 特にfilter_input()を駆使すると、受け取りたくない記号類を弾いたり、
80
+
81
+ メールアドレスじゃない文字列を弾いたりとかできるからね。
82
+
83
+ [PHP: filter_input - Manual](https://www.php.net/manual/ja/function.filter-input.php)

1

加筆修正

2019/09/29 06:27

投稿

退会済みユーザー
test CHANGED
@@ -5,3 +5,5 @@
5
5
  ちゃんと結果を受け取れているので、
6
6
 
7
7
  テスト環境に適切にphpファイルをアップロードできていないのではないでしょうか。
8
+
9
+ ![イメージ説明](18b77983bdd252699d68afad73742c6f.png)