PHPの簡易掲示板の編集機能の実装において、投稿フォームへの名前とコメントの再表示機能の実装がうまくいかない

実現したいこと

ここに実現したいことを箇条書きで書いてください。

  • 編集ボタンを押すことにより指定された編集番号の名前とコメントを既存の投稿フォームにそれぞれ再表示する。

前提

ここに質問の内容を詳しく書いてください。
(例)
PHPで簡易掲示板の作成に取り組んでいます。
上記でも説明した再表示機能の実装がうまくいかず、編集ボタンを押しても何も起こりません。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード <?php $date=date("Y年m月d日H時i分s秒"); $filename="m2_1.txt"; if(!empty($_POST["str"])&&!empty($_POST["com"])) { $name=$_POST["str"]; $co=$_POST["com"]; $fp=fopen($filename,"a+"); $lines=file($filename,FILE_IGNORE_NEW_LINES); if(count($lines)==0){ $num=1; $file=$num."<>".$name."<>".$co."<>".$date; fwrite($fp,$file.PHP_EOL); fclose($fp);}else{ $lastline=$lines[count($lines)-1];#最後の行を取得 #この行は既に配列のはず $num1=explode("<>",$lastline); $num=$num1[0]+1; $file=$num."<>".$name."<>".$co."<>".$date; fwrite($fp,$file.PHP_EOL); fclose($fp);} }elseif(empty($_POST["str"])&&empty($_POST["com"])&&!empty($_POST["del"])){ $del=$_POST["del"]; $lines=file($filename,FILE_IGNORE_NEW_LINES);#1行ごとに配列変数として$linesに格納 $fp=fopen($filename,"w"); for($i=0;$i<count($lines);$i++){ $line=explode("<>",$lines[$i]); $postnum=$line[0]; if($postnum!=$_POST["del"]){ fwrite($fp,$lines[$i].PHP_EOL); #ここから編集機能 }}}elseif(empty($_POST["str"])&&empty($_POST["com"])&&empty($_POST["del"])&&!empty($_POST["edit"])){ $edit=$_POST["edit"]; $lines=file($filename,FILE_IGNORE_NEW_LINES); $fp=fopen($filename,"r+"); for($i=0;$i<count($lines);$i++){ $line=explode("<>",$lines[$i]); $editnum=$line[0]; if($editnum==$edit){ $data1=$line[1]; $data2=$line[2]; }} fclose($fp); } #編集機能終わり if(file_exists($filename)){ $lines1=file($filename,FILE_IGNORE_NEW_LINES); foreach ($lines1 as $line1){ echo $line1."<br>" ; } } ?> <form action="" method="post"> <input type="text" name="str" placeholder="名前" value = "<?php echo $data1; ?>"> <input type="text" name="com" placeholder="コメント" value = "<?php echo $data2; ?>"> <input type="submit" name="submit"> <input type="text" name="del" placeholder="削除対象番号"> <input type="submit" name="submit" value="削除"> <input type="text" name="edit" placeholder="編集対象番号"> <input type="submit" name="submit" value="編集"> </form> </body> </html>

試したこと

編集番号表示専用の新しいフォームを作成したらうまくいきました。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント