前提・実現したいこと
フォームの入力項目の外部ファイルへの書き出しと、そのファイルをアップロードしフォームへ反映させる。
簡単なセーブとロードのような機能。
発生している問題
フォームの項目を外部ファイルに出力できるが、それを読み込めない。
出力する際のファイル形式、方法はどのようなものが最適かがわからない。
index.php
php
1<?php 2$output = 0; 3if (isset($_FILES['load'])) { 4 $output = 1; 5} 6?> 7<form method="post" enctype="multipart/form-data" action="index.php"> 8 <input type="file" name="load" value="" accept='.txt'><input type="submit" name="" value="読み込む"> 9</form> 10<?php if ($output == 1) { 11 //ここでアップロードしたファイルを元にフォームを再現したい。 12} else { ?> 13<form method="post" enctype="multipart/form-data"> 14 <dl> 15 <dt>店舗名</dt> 16 <dd> 17 <input type="text" name="shop" required> 18 </dd> 19 <dt>イベント名</dt> 20 <dd> 21 <input type="text" name="event" required> 22 </dd> 23 </dl> 24 <input type="submit" value="ファイルの保存" formaction="save.php"> 25</form> 26<?php } ?>
save.php
php
1<?php 2$post = $_POST; 3$file = save.'_'.date('Ymd_His').'.txt'; 4header('Content-type: text/plain'); 5header('Content-Disposition: attachment; filename='.$file); 6readfile($file); 7?> 8<?php print_r($post); ?>
上記コードで一応フォームの入力値が反映されたのテキストが生成されるが、アップロードした際にファイルを読み込み出力することができない。
出力する際のファイル形式、方法も間違っているとは思うのですが、どのようにすれば良いのかご教授ください。
save.phpについてですが、フォームの項目が増減するため、
<?php print_r($post); ?>のように一気に出力できるような方法が望ましいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/04/24 09:42
2019/04/24 09:47
退会済みユーザー
2019/04/25 01:20