anonymous No title
No License PHP
2020年09月14日
Copy
<?php
    //メッセージを保存するファイルのパス設定
    define("FILENAME", "mission_3-4.txt");
    
    //投稿機能    
    $name = $_POST["name"];
    $comment = $_POST["comment"];
    
    //タイムゾーン設定
    date_default_timezone_set("Asia/Tokyo");
    //投稿フォームにデータがある時
    if(!empty($name && !empty($comment))){
        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);
        }
        
    }
    
        //削除フォームにデータがある時
        if(isset($_POST["deleteno"])){
            //POSTの値を受け取り、変数に割り当てる
            $delno = $_POST["deleteno"];
            //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);
        }
    //編集する時    
    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] == $_POST["edit_number"]){
                    $editnumber = $bbsRowData[0];
                    $editname = $bbsRowData[1];
                    $editcomment = $bbsRowData[2];
                }
            }
        }
    }
       $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 ="hidden" name ="edit_post" value =<?php echo $editnumber; ?>>
        <input type ="text" name ="name" placeholder ="名前" value =<?php echo $editname; ?>><br>
        <input type ="text" name ="comment" placeholder ="コメント" value =<?php echo $editcomment; ?>>
        <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"];
    
    //タイムゾーン設定
    date_default_timezone_set("Asia/Tokyo");
    //投稿フォームにデータがある時
    if(!empty($name && !empty($comment))){
        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);
        }
        
    }
    
        //削除フォームにデータがある時
        if(isset($_POST["deleteno"])){
            //POSTの値を受け取り、変数に割り当てる
            $delno = $_POST["deleteno"];
            //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);
        }
    //編集する時    
    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] == $_POST["edit_number"]){
                    $editnumber = $bbsRowData[0];
                    $editname = $bbsRowData[1];
                    $editcomment = $bbsRowData[2];
                }
            }
        }
    }
       $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 ="hidden" name ="edit_post" value =<?php echo $editnumber; ?>>
        <input type ="text" name ="name" placeholder ="名前" value =<?php echo $editname; ?>><br>
        <input type ="text" name ="comment" placeholder ="コメント" value =<?php echo $editcomment; ?>>
        <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.