前提・実現したいこと
phpの練習で簡単な掲示板を作成していて編集機能を実装したいのですが、編集番号を入れても何も起こらないです。
確認のため編集機能のところにecho data1と入れても何も表示されないのでそのあたりに問題があると思うのですがどなたかわかりませんか。
発生している問題・エラーメッセージ
該当のソースコード
<!DOCTYPE html> <html lang = 'ja'> <head> <meta charset="utf-8"> </head> <body> <?php $fname = "mission_3-2.txt"; //コメントの判定 if(isset($_POST["comment"])){ $comment = $_POST["comment"]; //名前の判定 if(isset($_POST["name"])){ $name = $_POST["name"]; }else{ $name = "名無し"; } $date = date('Y/m/d G:i:s'); if($comment != NULL){ echo $comment."を受け付けました"."<br>"; //新規・編集の判定 if(empty($_POST["edit"])){ //新規の書き込み $fp = fopen($fname,'a'); $count = sizeof(file($fname))+1; fwrite($fp,$count."<>".$name."<>".$comment."<>".$date."\r\n"); }else{ //編集 $edit = $_POST["edit"]; $set_array = file($fname); $fp = fopen($fname,'w'); foreach($set_array as $line){ $data = explode("<>", $line); } if($data[0] == $edit){ fwrite($fp,$edit."<>".$name."<>".$comment."<>".$date."\r\n"); }else{ fwrite($fp,$line); } } fclose($fp); } } //削除機能 if(isset($_POST["delete"])){ $delete = $_POST["delete"]; $delfile = file($fname); $fp = fopen($fname,'w'); foreach($delfile as $d){ if($d[0] != $delete){ fwrite($fp,$d); }else{ fwrite($fp,"消去されました"."\r\n"); } } fclose($fp); } //編集機能 if (isset($_POST['edit'])) { $edit = $_POST['edit']; $editfile = file($fname); foreach ($editfile as $line) { $editdata = explode("<>",$line); if ($editdata[0] == $edit) { $data0 = $editdata[0]; $data1 = $editdata[1]; $data2 = $editdata[2]; } } } //編集の実行 if(isset($_POST["name"]) && isset($_POST["comment"]) && (isset($_POST["edit"]))){ $edit = $_POST["edit"]; $set_array = file($fname); $fp = fopen($fname,'w'); foreach($set_array as $s){ $data = explode("<>",$s); if($data[0] != $edit){ fwrite($fp,$s); }else{ fwrite($fp,$edit."<>".$name."<>".$comment."<>".$data3."\r\n"); } } fclose($fp); } ?> <form action="mission_3-4.php" method="post"> 名前:<input type="text" name="name" placeholder="名前" value="<?php if(isset($data1)) {echo $data1;} ?>"><br> コメント:<input type="text" name="comment" placeholder="コメント" value="<?php if(isset($data2)) {echo $data2;} ?>"><br> <input type="submit" name="submit" value="送信"> <br> <br> <input type="text" name="delete"> <input type="submit" name="delete" value="削除"> <br> <input type="text" name="edit"> <input type="submit" value="編集"> </form> <?php //表示機能 $fname = "mission_3-2.txt"; $text_array = file($fname); if(isset($text_array)){ foreach($text_array as $t){ $textdata = explode("<>",$t); foreach($textdata as $a){ echo $a." "; } echo "<br>"; } } ?> </body> </html>
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー