*

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表示)になります。

関連記事

30代、未経験者、独学中心でWEBエンジニアとして就職するまで

のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、

記事を読む

セミナー告知のお知らせ

突然ですが2018/06/16にIT業界への就職希望者を対象とした無料プログラミングセミナーを開催さ

記事を読む

挫折必至!初心者がやってはいけないプログラミングの学習法 ワースト4

多くの方はプログラミングをどのように身につけたらいいのか・・・ということに関心があると思います。

記事を読む

作業が遅くてイライラしている方必見!作業スピードを改善するネタ・ツールなど

エンジニアとして仕事をしていますと、「ある機能を実装する最適な方法(設計やプログラムの組み方全般)を

記事を読む

気を付けよう!個人事業主として働くときのトラブル

最近は開発のほうが忙しく、更新頻度が落ちているのですが、既存の記事を読んでる読者さんが多く、アクセス

記事を読む

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

以前、お問い合わせフォームを作成しましたが、今回からは数回に分けて掲示板を作成していこうと思います。

記事を読む

JavaScriptとPHPの違い

お問い合わせフォームと指導者ネタを更新中なのですが、先日セミナーにお越しいただいた受講生の方にPHP

記事を読む

PHPで掲示板を作ろう!(データベース編) その4 SQL編

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。 2か

記事を読む

文字化けを回避するには

こんにちは。松本です。 最近は実務ではJavaをやっていることが多いのですが、まだ普及していな

記事を読む

PHPで掲示板を作ろう!(データベース編) その1 データベースとは

以前、掲示板を作成するブログ記事を書きました。 その1 PHPで掲示板を作ろう! 掲示板の作成

記事を読む

Comment

  1. 空いた より:

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

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

  2. ななし より:

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

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

    • matsumoto より:

      ななしさん

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

Message

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

無料PHPスクール
自社開発>客先常駐である本当の理由

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

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

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

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑