実現したいこと
フォームを使用して内容を更新する動作を作りたいです。
form.php…現在の内容についてフォームに表示。修正したい場所を修正して送信する。
post.php…form.phpで送信された内容をdata.txtに保存する。
data.txtにはm0~m47の内容が1行ずつ記憶されるようにしています。
発生している問題・エラーメッセージ
エラーは出ないが、data.txtが正常に更新されない。
data.txtはすべて何もない行で改行だけされている。
data.txtを正常に更新するにはどのように記述すべきでしょうか。
該当のソースコード
form.php
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>form</title> 6 </head> 7 <body> 8 <form action="post.php" method="POST"> 9 <?$m = file(__DIR__ . './data.txt', FILE_IGNORE_NEW_LINES);?> 10 <table> 11 <tr> 12 <td>1</td> 13 <td>2</td> 14 <td>3</td> 15 <td>4</td> 16 </tr> 17 <? 18 for($x=0;$x<12;$x++){ 19 $y=$x*4; 20 echo "<tr><td><select name='m{$y}'><option value='1'"; 21 if($m[$y]==1){echo "selected";} 22 echo ">0</option><option value='0'"; 23 if($m[$y]==0){echo "selected";} 24 echo ">1</option></select></td>"; 25 $y++; 26 echo "<td><input type='textarea' name='m{$y}' value='{$m[$y]}'></td>"; 27 $y++; 28 echo "<td><input type='textarea' name='m{$y}' value='{$m[$y]}'></td>"; 29 $y++; 30 echo "<td><input type='textarea' name='m{$y}' value='{$m[$y]}'></td></tr>"; 31 } 32 ?> 33 </table> 34 <input type="submit" value="送信"> 35 </form> 36 </body> 37</html>
post.php
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="utf-8"> 5 <title>送信完了</title> 6 </head> 7 <body> 8 <?php 9 $filename = './data.txt'; 10 $memory = ""; 11 for($x=0;$x<48;$x++){ 12 $m[$y] = $_POST["m{$y}"]."\n"; 13 $memory = $memory.$m[$y]; 14 } 15 file_put_contents($filename, $memory); 16 echo "送信完了<br>正常に保存が完了しました。<hr>送信内容<br>"; 17 ?> 18 <hr><a href="./index.php">プレビュー</a>・<a href="./form.php">再編集</a> 19</body> 20</html>
回答1件
あなたの回答
tips
プレビュー