*

PHPで掲示板を作ろう! 掲示板の作成方法 その3(エラーチェックとファイル書き込み)

公開日: : 最終更新日:2019/01/24 PHP, 講義 , ,

PHP 掲示板

今回はPHPのコードの説明です。

掲示板の作成方法についてやります。

えー、前回の掲示板の作成方法からだいぶ期間があいてしまいました(汗)。

前回書いたのが2か月前ですね。

ブログ更新は定期的にかいてますが、ネタが結構ぶれるんで、定期連載物はちゃんとやっていきいっすね。

しかもソースが一部間違えてました。

もう修正していますが、18行目は下記の通りです。(今まで見てたかたスイマセン・・・・)

誤 $fp = fwrite( $fp ,  $name.”\t”.$comment.”\n”);

正 fwrite( $fp ,  $name.”\t”.$comment .”\n”);

2016/8/24 改行文字が抜けておりましたので追加しました。

前回までの続き

その1 PHPで掲示板を作ろう! 掲示板の作成方法 その1

その2 PHPで掲示板を作ろう! 掲示板の作成方法 その2

掲示板全体のソース

講義

前回まではほとんど掲示板とは何か?といったことと全体的な紹介に終始していたので、細かい説明はしていませんでしたね。

今回はPHPの掲示板をしっかり説明していきます。

まず今回の学習項目ですが、

  • 変数とエラーメッセージの定義の仕方
  • 入力のエラーチェックとファイルへの書き込み(重要!)

です。

変数とエラーメッセージの定義の仕方

ソース

今回説明するのはこの部分ですね。

解説

えー何をする部分かというとユーザーが入力するデータ(名前とコメント)、そのエラーメッセージを入れる変数を作ります。

変数=箱みたいなもんですね。

参考リンク データを扱ってみようその1(変数)

プログラミングとは簡単に言うと変数になんらかのデータをいれてそれを処理したり、画面に表示したりする行為です。

そのデータが入る変数をあらかじめ用意してあげないとエラーが発生してしまいます。

仮にデータが空であっても変数自体は用意する必要があります。

(空である、ということ自体が大切な情報だからです。)

$message=””というのは「messageという箱を用意します。その箱は最初空です。」

という意味です。

$name = ( isset( $_POST[“name”] ) === true ) ?$_POST[“name”]: “”;

というのはクリックボタンが押された場合はnameにそのデータを入れ、そうでないとき(つまりは一番最初に画面を読み込んだ時)は空白を入れる」という処理です。

入力のエラーチェックと書き込み

ソース

解説

まずは入力データのエラーチェックです。

今回の場合、名前とコメントが未入力の場合、エラーメッセージを表示する必要があるので、そのエラーチェックをしなくてはいけません。

if ( $name   === “” ) $err_msg1 = “名前を入力してください”;

ですが、$nameが空白なら、$err_msg1に「名前を入力してください」を入れます。

これを名前とコメントについて行います。

名前、コメントに入力があり、エラーメッセージが空白ならファイルへの書き込みになりますが、実は今回の掲示板はここがメインです。

この掲示板を学習する意義ですが、ファイルへの書き込み、ファイルへの読み込みを学ぶことにあるからです。

あ、ちなみにこのプログラムを動かす場合はdata.txtというテキストファイルを用意する必要がでてきます。これがないとソースを完ぺきに写したはずなのにエラーがでます。

$fp = fopen( “data.txt” ,”a” );

fwrite( $fp ,  $name.”\t”.$comment.”\n”);

の部分ですね。

この$fp = fopen( “data.txt” ,”a” );なんですが、この処理が肝ですね。

ここでファイルポインタという概念がでてきます。

ポインタとは本のしおりみたいなもの

まず$fp = fopen( “data.txt” ,”a” )の処理なんですが、これはファイルポインタを取得しています。

ファイルポインタとはなんぞや?という方もいると思いますが、簡単に言ってしまうと本のしおりみたいなもの、だと思ってください。

本を読む人であれば、ここまで読んだということで目印としてしおりを挟むと思います。

PHPではファイルの読み書きをする場合は、ここから読みます、ここから書き込みます、今ここまで読んでいます、という情報を持っておく必要があるんですね。

その情報をファイルポインタといいます。

fopen( “data.txt” ,”a” );の”a”は、これは追加の書き込みという意味です。

掲示板の場合は、それまでに書いた情報に追加をするので”a”になります。

書き込みをするたびに、前のデータを全消去して、上書きする処理もあり、そのタイプは”w”になります。ちなみの読み込みの場合は次回やりますが、”r”になります。

次の fwrite( $fp ,  $name.”\t”.$comment.”\n”);

ですが、これは実際に取得できたファイルポインタに書き込みをしています。

fwrite(ファイルポインタ、書き込み内容);です。

書き込み内容の$name.”\t”.$commentですが、これは名前とコメントの間にタブを入れています。

書き込んだ内容が

名前=松本、コメント=テストです。

だった場合に「松本テストです。」と入力してしまうと、PHPが後で取り出すときに、名前とコメントの区切り文字がわかりません。

区切り文字が必要なため、タブ記号(“\t”)を入れます。

最後の”\n”は改行です。

fgetsは1行ずつ読み込むため、改行をいれないと1行と認識しません。

そのために改行をいれます。

まとめ

以上が、今回の内容です。

特にファイルへの書き込みのところの理解が難しかったと思います。

復習しておきますと

変数の定義

PHP上で使う変数はあらかじめ定義しておく必要がある。

エラーチェック

未入力データのチェックを行います。

この手の処理は今後も引き続き行いますので、慣れておきましょう。

ファイルポインタ

ファイルの入力、出力をする際に必要となる本のしおりみたいなもの。

このしおりに入力、書き込みをすることで実際のファイルへの入力、出力ができるようになります。

次回の学習はPHPで掲示板を作ろう! 掲示板の作成方法 その4(ファイル読み込みとHTML表示)になります。

関連記事

プログラミング開発環境構築で挫折・・ wandboxを使ってみよう

本日はプログラミングの環境構築で挫折した方のために、前回の記事で紹介したwandboxというツールを

記事を読む

基本ルールのまとめ

こんばんは、松本です。 このブログのコンテンツもこのエントリーで25本目となってきました。

記事を読む

お問い合わせフォームを作ろう! その2(PHP)

おはようございます。松本です。 繰り返しますが、このブログは技術ブログなので(笑)PHPのネタ

記事を読む

プログラミングをする上で超大切な検索方法の身につけ方

今日はプログラミングで大切な検索方法の身につけ方について私なりのコツなどを書いていこうかなと思います

記事を読む

条件によって処理を分けよう (if)

おはようございます。松本です。 昨日はひさびさにサイクリングを長時間楽しみました。往復で50キ

記事を読む

オブジェクト指向

オブジェクト指向 その1 コードを1行も書かずに理解してみる

今回はオブジェクト指向について書きます。 プログラミングを少しでもやった(orやろうと思った)

記事を読む

お問い合わせフォームを作ろう! その1(HTML)

このサイト、PHPの学習サイトなのに内容から遠ざかっていました(爆) 個人的にはプログラミング

記事を読む

XAMPPとは何か

PHPを勉強する場合、まずXAMPPというソフトウェアを自分のパソコンにインストールします。

記事を読む

ドキドキ本番リリース時に大切な心構え

今回はエンジニアにとって大切な本番リリースについて。 本番リリースというのはいままで開発環境(

記事を読む

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。 今までプ

記事を読む

Comment

  1. 空いた より:

    ファイルに対するセキュリティの設定をフルコントロールにしたら成功しました。

    僕の勘違いでしたすいません>_<

  2. ななし より:

    $messageの説明の所が間違っていますよ

    $message=””というのは「nameという箱を用意します。その箱は最初空です。」ではなく
    $message=””というのは「messageという箱を用意します。その箱は最初空です。」では?

    • matsumoto より:

      ななしさん

      管理人の松本です。
      ご指摘ありがとうございます。
      修正させていただきます。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

→もっと見る

  • follow us in feedly
PAGE TOP ↑