?「localhost/webnote/keijiban.php」CSVファイルの保存先ですが、PHPファイル(変更前はHTMLファイル)、CSSファイルを保存している場所と同じ所に保存します。掲示板への投稿が終わった後、CSVファイルには何か変化があったのか気になったので確認してみたいと思います。HTMLコードだけの時とは違い、少し長いコードになりましたね(´;ω;`)「お名前」と「本文」の入力欄に何でも良いので記入して「投稿」ボタンを押してみます。準備も整ったところで、PHPを追加したことで掲示板がどのように動作するようになったのか確認してみようと思った矢先、素人ならではの壁にぶち当たりました。掲示板を作ると意気込んだものの、PHPで何をどうしたら掲示板の役割を果すのか今の私にはわかりません・・・少しコードを加えただけで一気に掲示板が出来上がってしまいました。ファイルの作り方は、今までHTMLファイル、CSSファイルを作ってきた時と同じです。拡張子を変えてEnterキーを押すとこのような画面が出ますが、テキストエディタにコードを記入してからきちんと上書き保存されているかを確認してから「はい」をクリックします。CSVファイルについての説明はPHPについてもう少し細かく見て行く時に合わせて書いていきたいと思います。今使っているテキストエディタ(メモ帳やTeraPadなどコードを記入しているもの)のから新規作成でファイルを作ります。「PHP初心者がいきなり掲示板を作ってみた。」シリーズのその1(HTML編)→その2(CSS編)と記事を書かせていただきました。(生意気にもシリーズ化してみました^^;)もし、ファイルがデスクトップ上で保存している場合もファイルを変更する方法は同じです。PHPについて超初心者なので、初歩的な説明も多くなってしまいがちですがどうかお許し下さい(・.・;)PHPをブラウザで表示させるにはブラウザのURL入力欄に何やら入力して表示させるようです。そして、上の画像のように拡張子部分を「.php」にすれば変更は完了です。今回はいよいよPHP編ということで、未知の世界に足を踏み入れたいと思います。ファイル名の変更も終わったところで、いきなりですがPHPコードを追加してみようと思います。というのも、一旦コードを完成させてしまいPHPが掲示板上ではどんな働きをしてくれているのかを見てから一個ずつ細かい部分を勉強していった方が、「なるほど~」と思えるような気がしたからです。
今回は初心者向けにPHP環境の構築から、PHPで動作する掲示板を作る方法を解説させていただいきました。有名な「WordPress」もPHPで書かれており、初心者でも比較的簡単に習得できることから人気があります。簡単にWebサーバーとPHPの動作環境を構築できるので、プログラミングに集中できるのは嬉しいですね。「XAMPP」は一般的なWebサーバー構成である「Apache」「MariaDB」「PHP」「Perl」を一括でインストールすることができます。簡単に作れてしまう反面、セキュリティ面についてはWebプログラミングをする上では考えなくてはいけない要素なので、常に意識してプログラミングしてください。「phpinfo.php」をエディタで開き、以下の内容をコピーしてください。ファイルオープンモードは「a+」の追記モードで開きましょう。読み込み処理と同様に「b」オプションを付けておくと良いでしょう。CSVで管理している場合、項目の追加は比較的簡単に実装できます。表示するときの見た目は、CSSで細かく調整をするとより良いものができます。今回は掲示板に最低限の機能しか実装していません。しかし、プログラミングをしているうちに「もっと機能を増やしてみたい!」と思う人もいらっしゃるでしょう。プログラミング言語のビスケット「viscuit」について解説!子ども向けプログラミング言語たったあれだけのコードで、PHPの環境設定を見ることができます。CSRF(クロスサイトリクエストフォージェリ)は本人が意図しないリクエスト操作を行わせる脆弱性を指します。インストール時のチェックは、デフォルト設定のままで大丈夫です。改行文字を統一するために「b」オプションを付けると良いでしょう。あとはCSRFトークンをHTML内に埋め込み、投稿時にトークンのハッシュ値が一致していれば、投稿者の意図したとおりに送信されていたことが保証できます。キャリアアップを目指す方は、この機会に私達と一緒にプログラミングを学んでみませんか?Apacheが起動すると「PID」と「Port」に数値が表示され、ボタンも「Start」から「Stop」に変化します。上記の状態になったら、ブラウザを立ち上げて以下のURLにアクセスしてみましょう。投稿日時も合わせて表示したい場合、CSVファイルに書き込むときに現在日時を取得して、項目を追記します。犯罪予告の誤認逮捕を生んだ脆弱性で、リンクをクリックしただけで利用者が知らないところで勝手に実行されるため、意識しないと対策が難しいでしょう。脆弱性ではCSRFもメジャーなので、今回はCSRF対策も行います。本来ならWebサーバーとPHPで設定が必要です。今回は一般的なWebサーバー構成を簡単にインストールできる「XAMPP」を利用してPHP環境を構築しましょう。今回はCSVファイルに一行ずつ表示する方法で、掲示板機能を実装します。CSVとは1行ごとにデータを格納し、カンマ(,)区切りで列部分を表すファイル形式です。上記のコードでも掲示板として動作していますが、複数の人が同時に投稿をした場合のことを考慮していません。名前やコメントを入力するテキストボックスと、掲示板を表示する部分を配置します。では、「phpinfo.php」にアクセスしてみましょう。以下のURLをブラウザでアクセスします。まずは掲示板として最低限の機能を実装することを目標にしましょう。以下の機能が挙げられます。PHPは初心者でも扱いやすく、すぐに動作するものを作ることができます。特にWebでプログラミングをするときに欠かせない要素として、セキュリティ面の対策についても記載をいたしました。PHPはWebサーバーで動作するプログラミング言語です。そのため、PHPを動作させるにはWebサーバーとPHP本体の最低2つが必要です。データベースのテーブルの準備やPHPでの記述も必要ですが、比較的簡単に実装できるので、こちらもチャレンジしてみるのもいいでしょう。このままだと同時書き込み時にCSVファイルが破損してしまう可能性があるため、その対策をしましょう。書き込んでいる間はロックモードにして、書き込めないようにします。一番上の「Apache」の「Start」ボタンをクリックします。© 2020 WEBCAMP NAVI All rights reserved.対策にはセッションという仕組みを利用します。セッションはCookieを用いたサーバー側でユーザー情報を管理する仕組みで、今回はこのセッションをCSRF対策として利用します。ファイルオープンモードは読み込みモード「a」でOKです。先頭から読み取り専用で開く、という処理を行います。書き込みが行われたら、まずはCSVファイルの末尾に書き込まれた内容を追記します。下記のような関数を作ることで「<」「>」「&」「”」「’」 は、それぞれ「<」「>」「&」「’」「’」に変換してくれます。再度掲示板を表示するときには一工夫が必要です。追記した直後はファイル末尾にポインタがある状態です。ポインタは、メモ帳やWordでいうカーソルと考えるとイメージしやすいでしょう。今回は分かりやすさを重視し、HTMLとCSSを一つのファイルに記述しています。しかし、本来ならHTMLとCSSは別々のファイルに書くべきです。今回の記事で紹介をした「XAMPP」にはMariaDB(MySQL派生のデータベース)も含まれています。ログインするユーザーのアカウント情報をデータベースに格納して、PHPで接続する処理が必要になります。このままでは見た目が味気ないですね。見た目を調整してみましょう。XSSは対策をしないと簡単にできてしまうため、今回はXSS対策も行いましょう。共有ロックをかけるにはflock関数に「LOCK_SH」フラグを立てて行います。PHPは会員向けサイトのような、動的コンテンツを配信したいWebサイトで使われているプログラミング言語です。掲示板を作るための環境も整いましたので、次はいよいよコーディングになります。HTMLはWebページの構造、CSSはWebページの見た目を担当しており、一つのファイルだと混同する恐れがあるためです。排他ロックをかけるにはflock関数に「LOCK_EX」フラグを立てて行います。「ものづくり」をしたいという思いからITエンジニアを目指し、見事第一希望会社に内定したWebCampPro受講生にお話を伺いました。未経験からエンジニアになるためのプログラミングスクールDMM WEBCAMPを運営しています。人生が変わるほど「グッとくる」成長体験を、プログラミング学習を通してお届けしています。また、投稿者が「<」「>」「&」といったHTMLの文法で意味のある文字を投稿していまい、そのまま保存して、表示するとページの表示ができなくなってしまいます。データを格納するのによく使われており、読み込みや書き込み処理が容易です。多機能の掲示板を作ろうとすると、考えることも多く難易度が高いです。まずは掲示板の見た目を作成しましょう。HTMLでコーディングします。【初心者向け】MacでPHPを使う時の開発環境の作り方【MAMP】WindowsだけでなくMacでも導入できるので、すぐにPHPの動作環境を容易したいときに便利です。WindowsでXAMPPをデフォルトでインストールした場合は、「C:\xampp\htdocs」に「phpinfo.php」を作ります。掲示板は不特定多数の人が書き込む場所です。そのため、ログインしたユーザーのみ書き込めるようにしたいと考える人もいるでしょう。すでに環境構築を終えている人はここはスキップしていただいて構いません。そのため、まずはポインタをCSVファイル先頭に移動して、読み込みを行う必要があります。また、サイト内でスタイルを統一したい場合など、HTMLとCSSを別ファイルにしたほうが良いケースがほとんどなので、できるだけ別々のファイルに記述しましょう。XSSは比較的簡単に対策はできるので、セキュリティ面も考えしっかりと行いましょう。今回はプログラミング初心者向けに、PHPで動作する掲示板を作る方法を分かりやすく解説していきます。ファイル読み込みに使う場合によく使われるモードです。自分の処理が終わるまでは、書き込み処理が割り込むことはできませんが、読み込み処理はOKです。皆さんは掲示板というと、どのようなイメージが浮かぶでしょうか?大きな掲示板サービスだと「2ちゃんねる」や「したらば掲示板」といったものが有名ですね。今回はJavaScriptを使用せず、PHPでの実装を行います。ファイル書き込みを行う場合によく使われるモードです。自分の処理が終わるまでは、他の処理が割り込むことはできず待機させます。ページにアクセスされたら、CSVファイルを読み込んで掲示板にその内容を表示します。Apacheが起動していると、上記のような画面が表示されます。XSS(クロスサイトスクリプティング)は投稿内容にJavaScriptのコードを埋め込み、任意のスクリプトを実行させる脆弱性を指します。セッションにはsession_start関数とsession_id関数を用いてユーザー固有の文字列を利用します。取得した文字列が改ざんされるのを防ぐため「sha1」などのハッシュ関数を使っておくと改ざんされる心配がグッと少なくなります。https://web-camp.io/magazine/archives/10034DMM WEBCAMPは3ヶ月間で未経験から即戦力エンジニアを育成する転職保障付きのプログラミングスクールです。1ヶ月でプログラミング・Webデザインを学ぶ通い放題の「ビジネス教養コース」も展開しています。