気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

PHPの入門書『PHPプログラミングの教科書』の構成は次のとおりです。

Chapter 1 学習の準備

Chapter1 学習の準備

PHPを使ってプログラミングを始める前に知っておいた方が良いポイントを説明します。スムーズに学習をすすめられるよう、これから学ぶことの全体像や、最終的に何ができるか、また、学習に必要なソフトウェアなどを見ていきます。

1-1 ホームページが見える仕組みを理解

おなじみの「インターネット書店」を例に、普段アクセスしている“ホームページ”(Webサイト・Webアプリ)の仕組みを説明します。最初から難しそうに感じるかもしれませんが、イメージをつかめるように単純化して図解しているので心配不要です。画面に書籍情報が表示されるまでの仕組みを理解すると、これから学習するPHPの全体像が見えてきます。落ち着いて理解できるようにしましょう。

1-1-1 インターネット書店の仕組みを理解しよう

1-2 必要なソフトウェアを準備

Webアプリケーションの作成と実行に必要なソフトウェアを紹介します。作成に使う「テキストエディタ」に慣れていない方にもピンとくるように、テキストエディタの主な機能や、それを使うメリットなども紹介します。実行に使うソフトウェアについては、すべてを一括でインストールできるツール「XAMPP」のインストール方法を図解で細かく説明します。

1-2-1 Webアプリの作成に向けて準備しよう
1-2-2 Webアプリケーションの作成から実行、公開まで

1-3 はじめてのPHPスクリプトを作る

はじめて作るPHPスクリプトとして、画面に「こんにちは」と表示するだけのPHPスクリプトを作成します。簡単そうに見えますが、プログラミングが初めての方には、予期せぬ問題が発生することもあります。たとえば、画面に「こんにちは」ではなく「縺薙s…」のような意味不明の言葉が表示されてしまう現象(文字化け)などです。そこで学習を止めたくならないように、この時点で考えられるトラブルの原因と対策、疑問に思う点などもできるだけ細かく説明していきます。

1-3-1「こんにちは」と表示するPHPスクリプトを作ろう

Chapter 2 基本構文

Chapter2 基本構文

PHP スクリプトを記述するときに使う構文を学んでいきます。初めてプログラミング言語を学ぶ方にとっては少し難しいキーワードや考え方が出てくるので、つまづかないように、難しい話はできるだけ後に回して、図を多く使って仕組みのイメージを固めてから実際のコードの書き方を目にする流れでゆっくりと説明していきます。あせらず、じっくり進めていきましょう。

2-1 変数

何度も使う言葉を入れておく「箱」の役割を果たす「変数」について、使うメリットから使い方、使うときのルールなどを紹介します。また、変数をつないだり四則演算するときに使う「演算子」という記号についても説明します。

2-1-1 繰り返し使う言葉には「変数」を使おう
2-1-2「演算子」で言葉を連結する

2-2 関数

さまざまな処理で役立つ「関数」について紹介します。まずは、わかりやすいようにExcelの関数を例にPHP関数の使い方のイメージを固めた後に、実際に文字列や日付を加工するときに役立つ関数を見ていきます。関数の実行方法と実行結果だけでなく、そのプログラムコードを組み立てるときの発想も図解でジックリと解説しています。コードの書き方だけでなく、処理の組み立てに役立つ発想も身に付けましょう。

2-2-1 簡単で便利な「PHP関数」を使おう
2-2-2「文字列関数」で、好きな文字列を抜き取る
2-2-3 いろいろな日付がわかる「日付関数」

2-3 条件分岐

「昼は“こんにちは”、夜は“こんばんは”」のように、画面に表示する言葉を切り替えるプログラムを書くために必要な考え方(条件分岐)を習得します。ここから少しずつ、本格的にプログラミングするときの発想が必要になってきます。プログラミングの知識がない方にも理解できるように、とても多くの図を使ってゆっくり説明していきます。

2-3-1「if文」で「もしも~なら」を組み立てよう
2-3-2 「もしも」が増えても安心の「switch文」

2-4 繰り返し

まとまった件数の言葉や日付を画面に表示するときに使う「繰り返し(ループ)」という考え方を紹介します。条件分岐と同じようにプログラミングでは重要な考え方です。特に、必要な回数だけ繰り返してループを終了するための「ループカウンタ」や「終了条件」という考え方を身に付ける必要があります。プログラミングの知識がない方にはわかりづらい概念かもしれないので、しっかり理解できるように特に図を多く使ってゆっくり説明します。

2-4-1 「for文」で、連続した日付を表示しよう
2-4-2 任意に繰り返しを止められる「while文」

2-5 配列

いくつかの言葉をまとめて管理できる「配列」について、そのメリットや使い方を紹介します。

2-5-1 「配列」で、まとめて管理しよう
2-5-2 「foreach文」で、配列の処理コードを簡単に

2-6 ユーザー定義関数

やりたい処理がPHP関数に存在しないときにオリジナルの関数を作成できるfunctionという構文を紹介します。また、この構文を活用して、長いコードを一瞬で書けるようになる効率化のテクニックも紹介します。

2-6-1 「function」でオリジナル関数を作ろう
2-6-2 PHP関数の短縮形を作成するテクニック

Chapter 3 フォーム

Chapter3 フォーム

フォームについて説明します。ボタンをクリックしたときに画面を切り替える仕組みや、それに必要なPHP スクリプトの記述方法がわかります。題材はメールフォーム、アンケートフォーム、スケジュール帳です。それぞれについて異なる課題やテーマがあります。1つずつしっかり理解できるようにしましょう。

3-1 練習用フォーム

フォームの機能を純粋に理解できるように、メールを送信する「ふり」をするだけの練習用フォームを例に、フォームの基本的な考え方を説明していきます。フォームに配置するボタンなどの作成方法(HTMLタグの記述方法)から、ボタンをクリックした後の動作の仕組み(「入力した内容はどこに行く?」など)まで、PHPに入門したときに必ず疑問に思うことを中心に、図を使ってかなりゆっくり説明していきます。

3-1-1 フォームを体験しよう
3-1-2 入力画面のサンプルコード
3-1-3 確認画面のサンプルコード
3-1-4 完了画面のサンプルコード

3-2 メールフォーム

実際にメールを送信するメールフォームです。メールの送信方法の説明に加えて、入力チェック(セキュリティ対策)やメールの文字化け、長い本文の組み立て方など、メールフォームでの典型的な課題の対策も紹介していきます。

3-2-1 メールフォームを作ろう
3-2-2 入力画面のサンプルコード
3-2-3 確認画面のサンプルコード
3-2-4 完了画面のサンプルコード

3-3 アンケートフォーム

アンケートフォームを例に、選択メニュー、ラジオボタン、チェックボックスといった、フォーム画面のバリエーションに焦点を当てます。回答の選択肢を択一式にする場合と複数回答を可能にする場合の使い分けや、配列からラジオボタンを自動作成する方法、アンケートを書き込むファイルを効率的に作成する方法も紹介します。

3-3-1 アンケートフォームを作ろう
3-3-2 回答画面のサンプルコード
3-3-3 回答確認画面のサンプルコード
3-3-4 回答完了画面のサンプルコード

3-4 スケジュール帳

カレンダーと連携してスケジュールを入力できるスケジュール帳を紹介します。ここまでに紹介するフォームスクリプトとは異なり、ボタンではなくリンク(カレンダーの日付)をクリックして画面を切り替えてデータをやりとりする方法を習得することができます。その前提になるカレンダーは、日付を一覧表示するだけの単純なスクリプトを少しずつ変更していく形でゆっくり組み立てていきます。

3-4-1 スケジュール帳を作ろう
3-4-2 カレンダー画面のサンプルコード
3-4-3 スケジュール登録画面のサンプルコード

Chapter 4 データベース

Chapter4 データベース

データベースについて説明します。一度はデータベースという言葉を耳にしたことがあるかもしれませんが、Web アプリケーションで使うデータベースの特徴は少しイメージと違うかもしれません。動作原理などをイラストで理解してから、データベースの作成へと進んでいきましょう。

4-1 データベースを作成

1人で使うだけの「住所録」ではなく、不特定多数がアクセスするWebアプリケーションでデータベースを使うために知っておいた方が良いポイントを簡潔にまとめて説明します。データベースサーバー、SQL、ユーザー、主キーなど、聞き慣れないキーワードが登場するかもしれませんが、たとえ話を交えてわかりやすく説明していくので心配不要です。少しずつ読み進めていきましょう。必修ツールの「phpMyAdmin」を使ったデータベースの作成方法も説明します。

4-1-1 データベースを理解しよう
4-1-2 データベースを作る

4-2 データベースを操作

データベースを操作するときに使うSQLを紹介します。SQLには膨大な命令群が含まれますが、データベースに入門する時点ではこれだけ理解すればひとまず大丈夫という4種類のSQLに絞って説明していきます。

4-2-1 「SQL」でデータベースに問い合わせよう
4-2-2 「SELECT文」でデータを取得
4-2-3 「INSERT文」でデータを追加
4-2-4 「UPDATE文」でデータを変更
4-2-5 「DELETE文」でデータを削除

Chapter 5 データベースプログラミング

Chapter5 データベースプログラミング

ゲストブックを例にデータベースと連携するPHP スクリプトの作成方法を説明します。ここまでに学んできた基本構文、フォーム、データベースの知識をフル活用して取り組んでいきましょう。必要に応じて前の章を復習しながら学習を進めていきます。

5-1 ゲストブックを作ろう

複雑に見えるかもしれないデータベーススクリプトのイメージを単時間で固められるように、「3つのステップ」(データベースへの接続、SQLの実行、実行結果の処理)に単純化してデータベーススクリプトの仕組みを説明します。

5-1-1 ゲストブックの処理イメージ

5-2 データ追加機能

データベースを扱うスクリプトの記述方法を説明しながら、ゲストブックに入力されたデータを追加するのに必要なSQL(INSERT文)を組み立てて実行するまでの流れを説明していきます。

5-2-1 データ追加機能を作ろう
5-2-2 追加画面のサンプルコード
5-2-3 追加確認画面のサンプルコード
5-2-4 追加完了画面のサンプルコード

5-3 データ表示機能

ゲストブックに書き込まれたデータを一覧表示する方法に加え、個別のデータを表示する「詳細表示画面」との連携方法も説明します。一覧表示と詳細表示の連携は、データの変更や削除でも必要になる重要な考え方なので、コードだけでなく仕組みもしっかり理解できるように、図を多く使ってゆっくり説明していきます。

5-3-1 データ表示機能を作ろう
5-3-2 一覧表示画面のサンプルコード
5-3-3 詳細表示画面のサンプルコード

5-4 データ変更機能

ゲストブックに登録されているデータを変更する方法を紹介します。「変更」リンクをクリックした後の動作(変更画面の表示など)のイメージを固めることが重要です。はじめてプログラミングを行う方にも理解できるように、ぜいたくに図を使ってゆっくり説明していきます。

5-4-1 データ変更機能を作ろう
5-4-2 変更画面のサンプルコード
5-4-3 変更確認画面のサンプルコード
5-4-4 変更完了画面のサンプルコード

5-5 データ削除機能

一覧表示されたデータの「削除」リンクをクリックしてから、実際にデータを削除するまでの流れを説明します。

5-5-1 データ削除機能を作ろう
5-5-2 削除確認画面のサンプルコード
5-5-3 削除完了画面のサンプルコード

Appendix MySQLを使うためのユーザー名とパスワード

付録

本書を卒業して、自分のコンピュータでサンプルコードを動かすだけでなく、レンタルサーバーなどに配置するときは、MySQLのユーザーとパスワードについてもう少し理解を深めた方が良いでしょう。そこで、MySQLデータベースのユーザーとパスワードに関する作業などをまとめました。rootユーザーのパスワード設定、新たなユーザーを追加したり削除する方法などです。ログイン画面経由でphpMyAdminにアクセスするための設定についても説明します。

A-1 本書サンプルのユーザー名とパスワード
A-2 rootユーザーのパスワードを設定する方法
A-3 ログイン画面経由でphpMyAdminを実行する方法
A-4 新たなユーザーを追加する方法
A-5 ユーザーを削除する方法

ログイン画面経由でphpMyAdmin を実行する方法

Column

PHPに入門したときにつまづく典型的なポイントもコラムにまとめました。画面が文字化けしたり、時刻がおかしいとき、if文がうまくいかないとき、変なエラーメッセージが表示されて困ったときなど、このWebサイトと共に参考にしてください。

  • 文字コードと文字化けの仕組み
  • 時刻が正しく表示されないときはタイムゾーンをチェック
  • switch文でおみくじを作るには
  • 無限ループに対処するには?
  • WordPressテンプレートにあるwhile文
  • 文字列から配列を作成するには?
  • メールフォームの実行に必要なメールサーバーの準備
  • 入力チェックやサニタイズに役立つフィルタ関数
  • if文による2つの値の比較がうまくいかないとき
  • データベースサーバーの動作設定(文字化け対策の例)
  • データ型について深く掘り下げる視点
  • レンタルサーバーでphpMyAdminを使うには
  • SQLのマニュアルについて
  • SQLの学習中に注意すべきこと
  • データ表示を速くすると更新は遅くなる傾向に
  • php.iniの設定変更が反映されないとき



PAGE TOP