PHP

投稿完了メッセージを表示する

  1. 最終更新日:
  2. 公開日:

「ひと言掲示板」にメッセージを投稿すると「メッセージを書き込みました。」と成功メッセージを表示する機能を付けます。

この記事のポイント

  • 投稿があった場合のみメッセージを表示する
  • empty関数で表示するメッセージがあるかを確認する

メッセージが無事に投稿できたことを知らせる

前回までで、掲示板の基本機能である「書き込む」と「読み込む」機能を作りました。
今回からは少しずつ掲示板の使い勝手をよくする機能を付けていきます。

まずは投稿が完了したときにメッセージを表示するようにして、ユーザーが投稿が無事に行えたかを分かりやすくする機能を作成します。

投稿完了のメッセージを表示する

「ひと言掲示板を作る」の概要については「ひと言掲示板を作る」をご覧ください。
デモはこちら

前回までに作成したコードはこちら:Github

投稿完了メッセージを用意する

まずは投稿されたメッセージをファイルに書き込んだ後に、表示したいメッセージを変数に入れて用意します。
今回は$success_messageにメッセージを入れていきます。

次の赤字のコードを追記してください。

index.php

<?php

---- 省略 ----

// 変数の初期化
$current_date = null;
$data = null;
$file_handle = null;
$split_data = null;
$message = array();
$message_array = array();
$success_message = null;

if( !empty($_POST['btn_submit']) ) {
  
  if( $file_handle = fopen( FILENAME, "a") ) {

    // 書き込み日時を取得
    $current_date = date("Y-m-d H:i:s");
  
    // 書き込むデータを作成
    $data = "'".$_POST['view_name']."','".$_POST['message']."','".$current_date."'\n";
  
    // 書き込み
    fwrite( $file_handle, $data);
  
    // ファイルを閉じる
    fclose( $file_handle);

    $success_message = 'メッセージを書き込みました。';
  }    
}

---- 省略 ----

$success_messageにはファイルへの書き込みがあった場合のみ値が代入されるため、こちらの変数に値が入っているか調べることでメッセージを表示するか判断することができます。

HTMLにメッセージ出力を設定する

続いて、HTML部分にメッセージがある場合に表示するよう設定していきましょう。
次の赤字のコードを追記してください。

index.php

<?php

---- 省略 ----

<body>
<h1>ひと言掲示板</h1>
<?php if( !empty($success_message) ): ?>
    <p class="success_message"><?php echo $success_message; ?></p>
<?php endif; ?>
<form method="post">
  <div>
    <label for="view_name">表示名</label>
    <input id="view_name" type="text" name="view_name" value="">
  </div>
  <div>
    <label for="message">ひと言メッセージ</label>
    <textarea id="message" name="message"></textarea>
  </div>
  <input type="submit" name="btn_submit" value="書き込む">
</form>

---- 省略 ----

empty関数$success_messageに値が入っているかを確認します。
empty関数は値が空(入っていない)の場合にtrueを返しますが、今回は逆に値が入っていたらtrueとしたいため関数の前に「!」を付けています。
この使い方は書き込みボタンが押されたかどうかを調べる方法と全く同じです。

以上で、メッセージの投稿があってファイルへの保存が完了した場合に次のようなメッセージが表示されるようになりました。

投稿完了メッセージの表示例

次回は「表示名」と「メッセージ」がきちんと入力されているかを確認する「バリデーション」の機能を付けていきます。

今回作成したコード:Github

前のページファイルからデータを読み込む

次のページ投稿の未入力バリデーションをつける

記事一覧

  1. ひと言掲示板を作る
  2. メッセージの入力フォームを作る
  3. メッセージのデータを受け取る
  4. ファイルにデータを保存する
  5. ファイルからデータを読み込む
  6. 投稿完了メッセージを表示する
  7. 投稿の未入力バリデーションをつける
  8. 投稿されたデータをサニタイズする
  9. 投稿データの保存にデータベースを使う
  10. 掲示板のデータベースとテーブルを作成する
  11. 投稿データをデータベースに登録する
  12. データベースからデータを取得する
  13. コードを整理する
  14. セッションで表示名の入力を省略する
  15. 管理ページを作成する
  16. ログインページを作る
  17. 投稿データをCSV形式でダウンロードする
  18. 投稿データをダウンロードする件数を指定する
  19. 投稿メッセージの編集ページを作る
  20. メッセージを編集する機能を実装する
  21. 投稿メッセージの削除ページを作る
  22. 管理ページにログアウトを実装する
  23. リロードによる多重投稿を防止する
  24. 投稿に文字数制限を設定する

前の記事

記事一覧

次の記事