回答編集履歴

5

見直し

2020/02/06 11:37

投稿

退会済みユーザー
test CHANGED
@@ -66,10 +66,18 @@
66
66
 
67
67
  fputcsv()で書き出しているけど、
68
68
 
69
- nameの方で一文字でも「,」が入ると、CSVのデータ区切り文字とかぶってしまうので、
69
+ nameやmessageに一文字でも「,」が入ると、CSVのデータ区切り文字とかぶってしまうので、
70
70
 
71
+ 動作がおかしくなるよ。
72
+
71
- nameに「,」が含まれていたときにどう処理するかを考えてほしい。
73
+ nameやmessageに「,」が含まれていたときにどう処理するかを考えてほしい。
72
74
 
73
75
  不適切な文字が含まれています、と拒否するか、
74
76
 
75
77
  入力されてもコケないよう対策を施すか。
78
+
79
+ よくある事例だと、データ区切り文字に「<>」を使うものもあるけど、
80
+
81
+ nameやmessageに「<>」が含まれていたらどうするかという話もあり、
82
+
83
+ 拒否するかもっと適切な対策を検討するかって話になる。

4

見直し

2020/02/06 11:37

投稿

退会済みユーザー
test CHANGED
@@ -34,6 +34,22 @@
34
34
 
35
35
  いくらPOST送信しても受信できていない。
36
36
 
37
+ ```html
38
+
39
+ <input type="text" id="name" placeholder="匿名さん">
40
+
41
+ ```
42
+
43
+
44
+
45
+ ```html
46
+
47
+ <input type="text" id="name" name="name" placeholder="匿名さん">
48
+
49
+ ```
50
+
51
+ のようにする。
52
+
37
53
  コードの冒頭で、`var_dump($_POST);`とでもしてみれば、
38
54
 
39
55
  どういうふうに受信できているかを確認できるので一度試してみてほしい。
@@ -41,3 +57,19 @@
41
57
  パラメータを受信するためには、id属性ではなくname属性が必要。
42
58
 
43
59
  (id属性は、jsやjQueryなどで操作するときに必要になるけども。)
60
+
61
+
62
+
63
+ ---
64
+
65
+
66
+
67
+ fputcsv()で書き出しているけど、
68
+
69
+ nameの方で一文字でも「,」が入ると、CSVのデータ区切り文字とかぶってしまうので、
70
+
71
+ nameに「,」が含まれていたときにどう処理するかを考えてほしい。
72
+
73
+ 不適切な文字が含まれています、と拒否するか、
74
+
75
+ 入力されてもコケないよう対策を施すか。

3

見直し

2020/02/06 11:34

投稿

退会済みユーザー
test CHANGED
@@ -39,3 +39,5 @@
39
39
  どういうふうに受信できているかを確認できるので一度試してみてほしい。
40
40
 
41
41
  パラメータを受信するためには、id属性ではなくname属性が必要。
42
+
43
+ (id属性は、jsやjQueryなどで操作するときに必要になるけども。)

2

見直し

2020/02/06 11:30

投稿

退会済みユーザー
test CHANGED
@@ -27,3 +27,15 @@
27
27
  ん~、ここ、敢えてエスケープする意味はないんじゃないかな。
28
28
 
29
29
  表示用に加工する意味がない。
30
+
31
+
32
+
33
+ そして、input要素にname属性がないために、
34
+
35
+ いくらPOST送信しても受信できていない。
36
+
37
+ コードの冒頭で、`var_dump($_POST);`とでもしてみれば、
38
+
39
+ どういうふうに受信できているかを確認できるので一度試してみてほしい。
40
+
41
+ パラメータを受信するためには、id属性ではなくname属性が必要。

1

加筆修正

2020/02/06 11:29

投稿

退会済みユーザー
test CHANGED
@@ -15,3 +15,15 @@
15
15
  あるいは、`filter_input(INPUT_POST, 'text')`を駆使することもご検討ください。
16
16
 
17
17
  [PHP: filter_input - Manual](https://www.php.net/manual/ja/function.filter-input.php)
18
+
19
+
20
+
21
+ ---
22
+
23
+
24
+
25
+ `<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'); ?>">`
26
+
27
+ ん~、ここ、敢えてエスケープする意味はないんじゃないかな。
28
+
29
+ 表示用に加工する意味がない。