回答編集履歴
1
日本語の修正
test
CHANGED
@@ -6,15 +6,17 @@
|
|
6
6
|
|
7
7
|
まず、fopenのwモードで開くとファイルが空になります。
|
8
8
|
|
9
|
-
ですので、1つ目のソースですと、パスワ
|
9
|
+
ですので、1つ目のソースですと、パスワードが一致しない場合、fwriteが実行されないルートを通りますのでファイルが空のままになります。
|
10
|
-
|
11
|
-
ファイルが空になります。
|
12
10
|
|
13
11
|
|
14
12
|
|
15
13
|
2つ目のソースは惜しいのですが、↓の書き方ですと
|
16
14
|
|
17
|
-
対象番号が一致しない
|
15
|
+
「対象番号が一致しない」と「パスワードが一致しない」の両方を満たすケースのみ
|
16
|
+
|
17
|
+
元々あった行がfwriteされます。
|
18
|
+
|
19
|
+
逆にいうと、どちらか一方が一致してしまうと消去のルートへ行ってしまいます。
|
18
20
|
|
19
21
|
```php
|
20
22
|
|
@@ -30,11 +32,11 @@
|
|
30
32
|
|
31
33
|
```
|
32
34
|
|
33
|
-
そうすると、対象番号
|
35
|
+
そうすると、対象番号ではないにもかかわらず、パスワードが一致さえすれば、その行は消されてしまうわけです。
|
34
36
|
|
35
37
|
|
36
38
|
|
37
|
-
|
39
|
+
では、どうすればいいかというと、対象番号とパスワードの両方が一致すれば削除していいので、
|
38
40
|
|
39
41
|
以下のif文でよいと思います。
|
40
42
|
|
@@ -58,9 +60,9 @@
|
|
58
60
|
|
59
61
|
|
60
62
|
|
61
|
-
そして
|
63
|
+
そして最後に、explodeで配列に変換している処理ですが、
|
62
64
|
|
63
|
-
おそらくパスワード(最後の要素)に改行が入ってしまってい
|
65
|
+
おそらくパスワード(最後の要素)に改行が入ってしまって一致しないのでないかと思いますので、
|
64
66
|
|
65
67
|
trimを使ってみてください。
|
66
68
|
|