質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

  • PHP

    25489questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    12581questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

簡易掲示板の編集機能実装について

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 436

wryted_1217

score 2

実現したいこと
・HTMLとPHPを用いた簡易掲示板で新規入力フォームと削除フォームを作成した。
・次に編集機能を実装させたい。(新規投稿と編集投稿が同じ入力フォームで行ってしまっているのが原因?)

現状できていること
・投稿に番号をつけてそれぞれの番号で削除・編集をできるようにしている。
・削除は機能するが、編集が番号指定してから編集はできるが、送信すると新規投稿になってしまい編集できていない。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<?php
ini_set('display_errors', "On");
date_default_timezone_set('Asia/Tokyo');
$comment=$_POST['comment'];
$name=$_POST['name'];
$delete=$_POST['delete'];
$date=date("Y年m月d日 H時i分s秒");
$edit_flag=0;
 if(!empty($_POST['name'])&&!empty($_POST['comment'])){
    $filename="kadai2-4.txt";
    $fp=fopen($filename,'a+');
    $num=count(file($filename));
    $num++;
    fwrite($fp,$num."<>".$_POST['name']."<>".$_POST['comment']."<>".$date."\n");
    fclose($fp);
}
  if(!empty($_POST['edit_submit'])){
    if(!empty($_POST['edit'])){
       if(preg_match("/^[0-9]+$/", $_POST["edit"])){
     $filename="kadai2-4.txt";
     $edit_array=array();
     $edit_array=file($filename);
     $index=0;
         $edit_flag=0;
       foreach($edit_array as $one){
        $data=explode("<>", $one);
             if($data[0]===$_POST['edit']){
            $edit_flag=1;
            $edit_before_name=$data[1];
            $edit_before_comment=$data[2];
            break;
                }
        $index++;
       }
}
}
}
?>
<form method="post"action="kadai2-4.php">
<!--名前入力フォーム-->
  <p>名前:
  <input type="text" name="name" placeholder="名前" value="<?=$edit_before_name?>"></p>
<!--コメント入力フォーム-->
  <p>コメント:
  <input type="text" name="comment" placeholder="コメント" value="<?=$edit_before_comment?>"></p>
<!--編集モード編集対象番号受け取り入力-->
  <input type="text" name="hidden_edit_number" value="<?=$_POST["edit"]?>" >
<!--送信ボタン-->
  <input type="submit"name="submit_submit" value="送信"><br>
<!--削除対象番号入力用textタイプ-->
  <p>削除対象番号:<input type="text" name="delete" placeholder="削除番号"></p>
<!--削除機能用送信submitタイプ-->
  <p><input type="submit" name="delete_submit" value="削除" placeholder="削除対象番号"></p>
<!--編集対象番号入力フォーム-->
  <p>編集:
  <input type="text" name="edit" placeholder="編集番号" ></p>
<!--編集機能用送信用submitタイプ-->
  <input type="submit" name="edit_submit" value="編集"><br>
</form>
<?php
    if($_POST['delete_submit']){
      if(!empty($_POST['delete'])){
         echo gettype($_POST['delete'])."<br>";
       if(preg_match('/^[0-9]+$/',$delete)){
        $filename="kadai2-4.txt";
        $delete_array=array();
        $delete_array=file($filename);
        $delete_array=file("kadai2-4.txt");
        $index=0;
          foreach($delete_array as $one){
          $data=explode("<>",$one);
            if($data[0]===$_POST['delete']){
               unset($delete_array[$index]);
               break;
                }
                $index++;
                }
                    $fp=fopen($filename,"w");
                    foreach($delete_array as $one_data){
                        fwrite($fp,$one_data);
                    }
                    fclose($fp);
}
}
}
    if($_POST['submit_submit']){
      if($edit_flag==1){
         if(!empty($_POST['name'])&&!empty($_POST['comment'])){
        $edit_array=array();
        $edit_array=file("kadai2-4.txt");
        unset($edit_array[$_POST['hidden_edit_number']]);
        array_splice($edit_array, $_POST['hidden_edit_number'], 0, $num."<>".$_POST['name']."<>".$_POST['comment']."<>".$date."\n");
        $fp=fopen($filename,"w");
            foreach($edit_array as $one_data){
              fwrite($fp, $one_data);
              fclose($fp);
            }
}
}
}
    $read_array=array();
    $read_array=file($filename);
    foreach($input_array as $value){
    $str_2=explode("<>",$value);
        echo $str_2[0]."  ";
        echo $str_2[1]."  ";
        echo $str_2[2]."  ";
        echo $str_2[3]."  "."<br>";
        $str=explode("<>",$value);
}
?>
</body>
</html>


すみませんが、どこをどうすれば編集できるようになりますか? 教えてください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • m.ts10806

    2018/08/28 22:50

    teratailでは同様にkadaiXXXとついたPHPでテキストにデータを保存する掲示板機能の質問は多数上がっています。そのどれも参考になりませんでしたか?

    キャンセル

  • 退会済みユーザー

    2018/08/28 22:51

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    25489questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • HTML

    12581questions

    HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。