*

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

関連記事

セミナー告知のお知らせ

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

記事を読む

繰り返しを学ぼう (for,foreach)

こんばんわ。松本です。 ゴールデンウィークもそろそろおわりですね。といいつつ、私はどこにも言っ

記事を読む

理論と実践のバランス

ネタ不足&開発のほうが忙しく、一か月以上書いておりませんでした。 今回は漠然とスキルアップする

記事を読む

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

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

記事を読む

PHPはなぜ簡単といわれるのか?

最近ではブラック企業と同じような意味合いでブラックバイトなんて言葉があるらしいですね。 ただ定

記事を読む

よく使う処理をまとめよう その2 (関数)

こんにちは。松本です。 最近の私の使命はダイエットです(爆)。 ダイエットはいろいろな方

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その1 準備編

前回までは掲示板作成をテーマにPHPの基本的な学習内容について書いてきました。 今回は題材にあ

記事を読む

PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編

あ、最近はこのブログの画像に凝るようにしています。サイドバーなんかみていただくとブログのアイキャッチ

記事を読む

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

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

記事を読む

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

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

記事を読む

Comment

  1. 空いた より:

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

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

  2. ななし より:

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

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

    • matsumoto より:

      ななしさん

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

Message

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

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

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

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

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

2020年のご挨拶

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

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

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑