PHPで掲示板の特定の行の削除をしたいのですが、勉強不足でどこが間違っているのかがわかりません。また、If文の中身をサイトを参考に作ったのでどういった動作がされているのかあまり理解ができていないです。間違っている点、動作内容を併せて教えてくださると幸いです。
###発生している問題・エラーメッセージ
ホームページに表示させると、HTTP 500と表示されます
###該当のソースコード
<!DOCTYPE html> <html lang = "ja"> <html> <head> <meta charset = "UFT-8"> <title>旅行記</title> </head> <body> <h2>ほのぼの旅行記</h2> <form action=""method="post"> 名前<br/> <input type="text" name="name" value=""/><br/> コメント<br/> <input type="text" name="comment" value=""/><br/> <br/> <input type="submit" value="送信" /><br/> <br/> </form> </body> </html> <html> <body> <form action=""method="post"> 削除番号<br/> <input type="number" name="delcode" value=""/><br/> <br/> <input type="submit" name="delete" value="削除"> <br/> </form> </body> </html> <?php //名前・コメント・時間を受け取り関数に導入; $message=$_POST['name']; $comment=$_POST['comment']; $time=date('Y-m-d H-i'); //受け取ったデータを繋げてまとめている; $data=$message."<>".$comment."<>".$time; //kadai2-2を関数に導入; $filename='kadai2-2.txt'; //echo $filename; $fp=fopen($filename,'r'); for($count=1; fgets($fp);$count++); //fgets()で1行ずつ読み込み、その読み込んだ回数をカウントして、+1する; $fp=fopen($filename,'a'); fwrite($fp,$count++."<>".$data."\n"); //数えた数とデータを組み合わせて書き込み; fclose($fp); //読み込むファイル名の指定 $filename='kadai2-2.txt'; //ファイルを全て配列に入れる $ret_array=file ($filename); $ret_array=array_reverse($ret_array) /*if文で条件分岐 if(削除項目の入力があったら){ 読み込んで行のカウント{ if(行がゼロより大きかったら) } */ $newdata=$count++."<>".$data."\n"; if(isset($_POST['delete'])){ for($i=0;$i<count($ret_array);$i++){ $items=explode("\t",$ret_array[$i]); if($items[0]=="<{$_POST['delcode']}>"){ $ret_array[$i]="";} } $newdata=array_reverse($ret_array); $newdata=implode("\n",$newdata)."\n"; write($filename,$newdata,"w"); } //取得したファイルデータを全て表示する for($i=0; $i<count($ret_array); ++$i){ //繰り返し表示; $str=explode("<>",$ret_array[$i]); //要素分割 echo ($str[0]."<br />\n"); echo ($str[1]."<br />\n"); echo ($str[2]."<br />\n"); echo ($str[3]."<br />\n"); //分割した要素の表示 } ?>
###試したこと
###補足情報(言語/FW/ツール等のバージョンなど)
自主的な学習で学校の課題ではありません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/20 01:25