質問編集履歴

1

コード全体をすべて載せます。

2019/09/04 07:45

投稿

MakotoIshizawa
MakotoIshizawa

スコア32

test CHANGED
File without changes
test CHANGED
@@ -32,11 +32,25 @@
32
32
 
33
33
  ```php
34
34
 
35
+ <?php
36
+
37
+ /*もしポストで送信されたら以下の処理を行いGET送信でリダイレクトする(更新時の二重書き込み防止)*/
38
+
39
+ if ( $_SERVER[ 'REQUEST_METHOD' ] === 'POST' ) { /*もしPOSTで送信されたら*/
40
+
41
+
42
+
43
+ /*フォームで送信された値を受け取り、テキストファイルに保存する。
44
+
45
+ その際1行ごとに「{番号}<>{名前}<>{コメント}<>{投稿された時間}」と言う形で保存する*/
46
+
47
+ /*変数の定義*/
48
+
35
- $filename = "keijiban.txt";                        /*保存するファイル*/
49
+ $filename = "keijiban.txt"; /*保存するファイル*/
36
-
50
+
37
- $name = htmlspecialchars($_POST['name']);                 /*投稿者の名前*/
51
+ $name = $_POST[ 'name' ] ; /*投稿者の名前*/
38
-
52
+
39
- $comment = htmlspecialchars($_POST['comment']);            /*投稿するコメント*/
53
+ $comment = $_POST[ 'comment' ] ; /*投稿するコメント*/
40
54
 
41
55
  $date = date( "Y-m-d H:i" ); /*投稿日時*/
42
56
 
@@ -44,60 +58,148 @@
44
58
 
45
59
  /*投稿番号の定義*/
46
60
 
47
- if ( file_exists( $filename ) ) {                 /*ファイルの存在を確認*/
61
+ if ( file_exists( $filename ) ) /*ファイルの存在を確認*/ { /*真ならファイルの配列の行をカウントし、プラス1を変数の定義とする*/
48
-
49
-              /*真ならファイルの配列の行をカウントし、プラス1を変数の定義とする*/
62
+
50
-
51
- $count = count( file( $filename ) ) + 1;
63
+ $count = count( file( $filename ) /*ファイルを配列として読みこむ*/ ) /*配列を数える*/ + 1;
52
-
64
+
53
- } else {                   /*ファイルが無かった場合変数の定義を1とする*/
65
+ } else { /*ファイルが無かった場合変数の定義を1とする*/
54
66
 
55
67
  $count = 1;
56
68
 
57
69
  }
58
70
 
59
- $hozon = $count . "<>" . $date . "<>" . $name . "<>" . $comment . "\n";
71
+ $hozon = $count . "<>" . $name . "<>" . $comment . "<>" . $date . "\n";
60
-
72
+
61
- if ( !empty( $_POST[ 'name' ] ) && !empty( $_POST[ 'comment' ] ) ) {
73
+ if ( !empty( $_POST[ 'name' ] ) && !empty( $_POST[ 'comment' ] ) ) { /*もし名前とコメントが送信されたら*/
62
-
63
-                               /*もし名前とコメントが送信されたら*/
64
74
 
65
75
  file_put_contents( $filename, $hozon, FILE_APPEND ); /*指定したファイルに追記モードで書き込み*/
66
76
 
67
77
  }
68
78
 
79
+ if ( !empty( $_POST[ 'deleteNO' ] ) ) { /*もし、削除番号がポスト送信されたら*/
80
+
81
+
82
+
83
+ $deleteNO = $_POST[ 'deleteNO' ] ; /*削除番号の変数定義*/
84
+
85
+ $ret_array = file( $filename ); /*ファイルを配列として読み込む*/
86
+
87
+
88
+
89
+ foreach ( $ret_array as $value ) { /*ループ*/
90
+
91
+ $value4 = explode( "<>", $value ); /*<>で分割し投稿番号取り出す*/
92
+
93
+
94
+
95
+ if ( $deleteNO != $value4[ 0 ] ) { /*もし読み込んだ番号と送信した番号が違ったら*/
96
+
97
+
98
+
99
+ file_put_contents( $filename, $value ); /*ファイルに書き込む*/
100
+
101
+
102
+
103
+ }
104
+
105
+ }
106
+
107
+
108
+
109
+ }
110
+
111
+
112
+
113
+ header( 'Location: keijiban.php' );
114
+
115
+ exit;
116
+
117
+ }
118
+
119
+ ?>
120
+
121
+ <!doctype html>
122
+
123
+ <html lang="ja">
124
+
125
+ <head>
126
+
127
+ <meta charset="utf-8">
128
+
129
+ <title>簡易掲示板</title>
130
+
131
+ </head>
132
+
133
+
134
+
135
+ <body>
136
+
137
+ <p>
138
+
139
+ <form action="keijiban.php" method="post" >
140
+
141
+ <label for="name-field">お名前<span style="color: red;">【必須】</span><br>
142
+
143
+ </label>
144
+
145
+ <input type="text" name="name" id="name-field" required="required">
146
+
147
+ </p>
148
+
149
+ <p>
150
+
151
+ <label for="comment">コメント<span style="color: red;">【必須】</span></label>
152
+
153
+ <br>
154
+
155
+ <textarea name="comment" cols="30" rows="3" id="comment" required="required"></textarea>
156
+
157
+ </p>
158
+
159
+ <input type="submit" value="投稿">
160
+
161
+ </form>
162
+
163
+ <?php
164
+
165
+
166
+
167
+
168
+
169
+ $filename = "keijiban.txt";
170
+
171
+ $ret_array = file( $filename );
172
+
173
+ foreach ( $ret_array as $value ) {
174
+
175
+ $value2 = explode( "<>", $value );
176
+
177
+ foreach ( $value2 as $value3 ) {
178
+
179
+ echo $value3 . "<br>\n";
180
+
181
+ }
182
+
183
+ }
184
+
185
+ ?>
186
+
187
+ <form action="keijiban.php" method="post">
188
+
189
+ <P>
190
+
191
+ <label for="deleteNO" >削除対象番号</label>
192
+
193
+ <input type="text" name="deleteNO" id="deleteNO" >
194
+
195
+ </p>
196
+
197
+ <input type="submit" value=”削除”>
198
+
199
+ </form>
200
+
201
+ </body>
202
+
203
+ </html>
204
+
69
205
  ```
70
-
71
- 削除部分
72
-
73
- ```php
74
-
75
- if ( !empty( $_POST[ 'deleteNO' ] ) ) {       /*もし、削除番号がポスト送信されたら*/
76
-
77
- $deleteNO = htmlspecialchars($_POST[ 'deleteNO' ]);      /*削除番号の変数定義*/
78
-
79
-
80
-
81
- $ret_array = file( $filename );          /*ファイルを配列として読み込む*/
82
-
83
- foreach ( $ret_array as $value ) {                      /*ループ*/
84
-
85
- $value4 = explode( "<>", $value );                     /*<>で分割*/
86
-
87
- if ( $deleteNO != $value4[0] ) {   /*もし読み込んだ番号と送信した番号が違ったら*/
88
-
89
-
90
-
91
- file_put_contents( $filename,$value);               /*ファイルに書き込む*/
92
-
93
- }
94
-
95
- }
96
-
97
-
98
-
99
- }
100
-
101
-
102
-
103
- ```