回答編集履歴

2

見直し

2020/02/24 06:10

投稿

退会済みユーザー
test CHANGED
@@ -64,9 +64,9 @@
64
64
 
65
65
  投稿データを削除する機能を実装するときに番号がダブる可能性があります。
66
66
 
67
- 1,2,3,4,5 がある状態で、4を物理削除して1,2,3,5、次に投稿があれば1,2,3,5,5になりますし。
67
+ 1,2,3,4,5 がある状態で、4を物理削除(行データそのものをなかったことにして削除)して1,2,3,5、次に投稿があれば1,2,3,5,5になりますし。
68
68
 
69
- (もちろん、論理削除する手もありますけども。)
69
+ (もちろん、論理削除(投稿番号を無効にするなどしてデータが有っても意味を失わせて削除)する手もありますけども。)
70
70
 
71
71
  面倒でもデータファイル上の投稿番号の最大値を調べてから+1するとか、
72
72
 

1

加筆修正

2020/02/24 06:10

投稿

退会済みユーザー
test CHANGED
@@ -1,3 +1,81 @@
1
1
  empty()でPOST受信データをチェックするよりも、
2
2
 
3
3
  isset()の方がNotice: Undefined indexのエラーメッセージを出さずに済みます。
4
+
5
+
6
+
7
+ 直接の原因ではないけど念の為にいくつか指摘しておきます。
8
+
9
+
10
+
11
+ ```php
12
+
13
+ if (!empty($name)||!empty($comment)){
14
+
15
+ ```
16
+
17
+ の箇所で、そもそも$nameや$commentを初期化していない状態で参照するのもよくありません。
18
+
19
+ すぐ上書きするとしても、いきなり変数を参照せず初期値を詰めておくのが良いかと。
20
+
21
+
22
+
23
+ ```php
24
+
25
+ $name = '';
26
+
27
+ if (isset($_POST["namae"])) {
28
+
29
+ $name = $_POST["namae"];
30
+
31
+ }
32
+
33
+ $comment = '';
34
+
35
+ if (isset($_POST["comment"])) {
36
+
37
+ $comment = $_POST["comment"];
38
+
39
+ }
40
+
41
+ ```
42
+
43
+
44
+
45
+ それと、
46
+
47
+ ```php
48
+
49
+ //ファイルの存在がある場合は投稿番号+1、なかったら1を指定する
50
+
51
+ if (file_exists($filename)) {
52
+
53
+ $num = count(file($filename))+1;
54
+
55
+ } else {
56
+
57
+ $num = 1;
58
+
59
+ }
60
+
61
+ ```
62
+
63
+ この`$num`の決定方法は危険です。
64
+
65
+ 投稿データを削除する機能を実装するときに番号がダブる可能性があります。
66
+
67
+ 1,2,3,4,5 がある状態で、4を物理削除して1,2,3,5、次に投稿があれば1,2,3,5,5になりますし。
68
+
69
+ (もちろん、論理削除する手もありますけども。)
70
+
71
+ 面倒でもデータファイル上の投稿番号の最大値を調べてから+1するとか、
72
+
73
+ 投稿データファイルと別に発番用データファイル(発番すると+1して更新)を用意するべきです。
74
+
75
+
76
+
77
+ `<meta charset = "UTF-8N">`は`<meta charset="utf-8">`みたいにNはつけませんよ。
78
+
79
+ どこかの方言(?)でBOM(バイトオーダーマーク)をつけていないものにNを添えるみたいですが、
80
+
81
+ htmlでは関係ありませんので。