anonymous No title
No License PHP
2020年09月15日
Copy
<?php
    //メッセージを保存するファイルのパス設定
    define("FILENAME", "mission_3-4.txt");
    
    //投稿機能    
    $name = $_POST["name"];
    $comment = $_POST["comment"];
    $delno = $_POST["deleteno"];
    $edino = $_POST["edit_number"];
    
    //タイムゾーン設定
    date_default_timezone_set("Asia/Tokyo");
    //投稿フォームにデータがある時
    if(!empty($name && !empty($comment))){
        //編集が空であるとき新規投稿
        if ($_POST["edit_post"] == NULL) {
           if($file_handle = fopen(FILENAME ,"a")){
               //書き込み日時を取得
               $now_date =date("Y年m月d日 H:i:s");
                //ファイルの存在がある場合は投稿番号+1、なかったら1を指定する
               if(file_exists(FILENAME)){
                   $number =end(file(FILENAME))+1;
                }else{
                   $number = 1;
                }
            //書き込むデータを作成 
            $date =$number . "<>". $name . "<>" . $comment . "<>" . $now_date . PHP_EOL;
            //書き込み
            fwrite($file_handle, $date);
            //ファイルを閉じる
            fclose($file_handle);
           }
        //編集が空でない時   
        }else{
            //編集する  
            //if(!empty($_POST["edit"])){
               if(file_exists(FILENAME)){
                  $lines = file(FILENAME,FILE_IGNORE_NEW_LINES);
                  $now_date =date("Y年m月d日 H:i:s");
                  //データ件数文処理
                  foreach($lines as $row){
                      //<>で分割して配列に
                      $bbsRowData = explode("<>",$row);
                      //編集対処番号とデータのナンバーがおなじであったら
                      if($bbsRowData[0] == $edino){
                          $editnumber = $bbsRowData[0];
                          $editname = $bbsRowData[1];
                          $editcomment = $bbsRowData[2];
                        }
                    }
                }
            //}
        }
    //投稿フォームにデータがない時
    }else{
        //削除フォームにデータがある時
        if(isset($delno)){
            //txtファイルの中身を読み込む
            $del = file(FILENAME);
            //1行ずつ走査
            for($i = 0 ; $i < count($del) ; $i++){
               $delline = explode("<>",$del[$i]);
               //$delnoを頼りに対象行を探す
               if($delline[0] == $delno){
                   //対象行が見つかったら1行削除(ファイル上はまだ削除されない)
                   array_splice($del, $i, 1);
               }
           }
           //書き込みモードでデータを開く(空になる)
           $dellog = fopen(FILENAME,"w");
           //$delで1行削除したデータを配列に入れる
           foreach($del as $value){
               fwrite($dellog, $value);
           }
           fclose($dellog);
        }
    }
        

       $array = file(FILENAME, FILE_IGNORE_NEW_LINES);
       foreach($array as $ar){
                     echo $ar . "<br>";
       }
    
    
    ?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
    <form action ="" method ="post">
        <input type ="text" name ="name" placeholder ="名前" value =<?php echo $editname; ?>><br>
        <input type ="text" name ="comment" placeholder ="コメント" value =<?php echo $editcomment; ?>>
        <input type ="hidden" name ="edit_post" value =<?php echo $editnumber; ?>>
        <input type ="submit" name ="submit"><br>
    
        <input type = "text" name ="deleteno" placeholder ="削除対象番号">
        <input type ="submit" name ="deleto"><br>
        
        <input type ="text" name ="edit_number" placeholder ="編集対象番号">
        <input type ="submit" name = "edit" value ="編集">
    </form>
</body>
</html>
<?php
    //メッセージを保存するファイルのパス設定
    define("FILENAME", "mission_3-4.txt");
    
    //投稿機能    
    $name = $_POST["name"];
    $comment = $_POST["comment"];
    $delno = $_POST["deleteno"];
    $edino = $_POST["edit_number"];
    
    //タイムゾーン設定
    date_default_timezone_set("Asia/Tokyo");
    //投稿フォームにデータがある時
    if(!empty($name && !empty($comment))){
        //編集が空であるとき新規投稿
        if ($_POST["edit_post"] == NULL) {
           if($file_handle = fopen(FILENAME ,"a")){
               //書き込み日時を取得
               $now_date =date("Y年m月d日 H:i:s");
                //ファイルの存在がある場合は投稿番号+1、なかったら1を指定する
               if(file_exists(FILENAME)){
                   $number =end(file(FILENAME))+1;
                }else{
                   $number = 1;
                }
            //書き込むデータを作成 
            $date =$number . "<>". $name . "<>" . $comment . "<>" . $now_date . PHP_EOL;
            //書き込み
            fwrite($file_handle, $date);
            //ファイルを閉じる
            fclose($file_handle);
           }
        //編集が空でない時   
        }else{
            //編集する  
            //if(!empty($_POST["edit"])){
               if(file_exists(FILENAME)){
                  $lines = file(FILENAME,FILE_IGNORE_NEW_LINES);
                  $now_date =date("Y年m月d日 H:i:s");
                  //データ件数文処理
                  foreach($lines as $row){
                      //<>で分割して配列に
                      $bbsRowData = explode("<>",$row);
                      //編集対処番号とデータのナンバーがおなじであったら
                      if($bbsRowData[0] == $edino){
                          $editnumber = $bbsRowData[0];
                          $editname = $bbsRowData[1];
                          $editcomment = $bbsRowData[2];
                        }
                    }
                }
            //}
        }
    //投稿フォームにデータがない時
    }else{
        //削除フォームにデータがある時
        if(isset($delno)){
            //txtファイルの中身を読み込む
            $del = file(FILENAME);
            //1行ずつ走査
            for($i = 0 ; $i < count($del) ; $i++){
               $delline = explode("<>",$del[$i]);
               //$delnoを頼りに対象行を探す
               if($delline[0] == $delno){
                   //対象行が見つかったら1行削除(ファイル上はまだ削除されない)
                   array_splice($del, $i, 1);
               }
           }
           //書き込みモードでデータを開く(空になる)
           $dellog = fopen(FILENAME,"w");
           //$delで1行削除したデータを配列に入れる
           foreach($del as $value){
               fwrite($dellog, $value);
           }
           fclose($dellog);
        }
    }
        

       $array = file(FILENAME, FILE_IGNORE_NEW_LINES);
       foreach($array as $ar){
                     echo $ar . "<br>";
       }
    
    
    ?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
    <form action ="" method ="post">
        <input type ="text" name ="name" placeholder ="名前" value =<?php echo $editname; ?>><br>
        <input type ="text" name ="comment" placeholder ="コメント" value =<?php echo $editcomment; ?>>
        <input type ="hidden" name ="edit_post" value =<?php echo $editnumber; ?>>
        <input type ="submit" name ="submit"><br>
    
        <input type = "text" name ="deleteno" placeholder ="削除対象番号">
        <input type ="submit" name ="deleto"><br>
        
        <input type ="text" name ="edit_number" placeholder ="編集対象番号">
        <input type ="submit" name = "edit" value ="編集">
    </form>
</body>
</html>

Output

    
Run
No one still commented. Please first comment.