初めてのPHP、MySQL、JavaScript&CSS 第2版

[cover photo]
オライリー・ジャパンで書籍を購入:
定価3,888円

Ebook Storeで電子版を購入:
価格3,110円

本書は、PHPとMySQLという定番の組み合わせに、JavaScriptとCSSの必須知識を加えて解説するウェブ開発者やデザイナのための入門書です。ウェブサイトやデザインの開発現場における4つのコアな技術(PHP、MySQL、JavaScript、CSS)とその実践的な知識を、1冊の書籍の中で通して解説しています。PHP言語の基礎とMySQLデータベースシステムの解説を経て、PHPとMySQLを組み合わせて動的なウェブページを作成。さらに、クッキーやセッションの扱い方、高いレベルでセキュリティを維持する方法など、PHPとMySQLの開発の核心となる実用的なトピックにも取り組みます。またJavaScriptの基礎を経て、Ajaxを使ってウェブサイトをダイナミックなものにする方法について学びます。CSSは基礎から実用的な用途までを解説します。プログラミングについての実践的なテクニックやヒントなども随所に数多く含まれるウェブ開発者のための決定版入門書です。

関連書籍

CSSシークレット
Head First JavaScript
Head First PHP & MySQL
JavaScript 第6版
初めてのJavaScript 第3版
初めてのPHP

目次

はじめに

1章 ダイナミックWebコンテンツ入門
    1.1 HTTPとHTML:Berners-Leeの基本
        1.1.1 要求と応答の流れ
    1.2 PHP、MySQL、JavaScript、CSSのメリット
        1.2.1 PHPの使用
        1.2.2 MySQLの使用
        1.2.3 JavaScriptの使用
        1.2.4 CSSの使用
    1.3 Apache Webサーバー
    1.4 オープンソースについて
    1.5 ここまでのまとめ
    1.6 確認テスト

2章 開発サーバーの設定
    2.1 WAMP、MAMP、LAMPとは?
    2.2 WindowsへのWAMPのインストール
        2.2.1 インストール後の確認
        2.2.2 そのほかのWAMP
    2.3 OS XへのMAMPのインストール
        2.3.1 MySQLの設定
        2.3.2 インストールと設定の確認
    2.4 LinuxへのLAMPのインストール
    2.5 リモートからの使用
        2.5.1 ログイン
        2.5.2 FTPの使用
    2.6 プログラムエディタの使用
    2.7 IDEの使用
    2.8 確認テスト

3章 PHP入門
    3.1 PHPのHTML内への統合
        3.1.1 PHPパーサーの呼び出し
    3.2 本書のサンプル
    3.3 PHPの構造
        3.3.1 コメントの使用
        3.3.2 基本的なシンタックス
        3.3.3 変数の理解
        3.3.4 演算子
        3.3.5 変数への代入
        3.3.6 複数行にわたるコマンド
        3.3.7 変数の型付け
        3.3.8 定数
        3.3.9 echoとprintコマンドの違い
        3.3.10 関数
        3.3.11 変数のスコープ
    3.4 確認テスト

4章 PHPの式と制御の流れ
    4.1 式
        4.1.1 リテラルと変数
    4.2 演算子
        4.2.1 演算子の優先順位
        4.2.2 結合性
        4.2.3 関係演算子
    4.3 条件
        4.3.1 ifステートメント
        4.3.2 elseステートメント
        4.3.3 elseifステートメント
        4.3.4 switchステートメント
        4.3.5 ?演算子
    4.4 ループ
        4.4.1 whileループ
        4.4.2 do...whileループ
        4.4.3 forループ
        4.4.4 ループを抜け出る
        4.4.5 continueステートメント
    4.5 暗黙的なキャストと明示的なキャスト
    4.6 PHPの動的リンク
        4.6.1 実際の動的リンク
    4.7 確認テスト

5章 PHPの関数とオブジェクト
    5.1 PHPの関数
        5.1.1 関数を定義する
        5.1.2 値を返す
        5.1.3 配列を返す
        5.1.4 参照で渡す
        5.1.5 グローバル変数を返す
        5.1.6 変数のスコープのまとめ
    5.2 ファイルのincludeとrequire
        5.2.1 includeステートメント
        5.2.2 include_onceの使用
        5.2.3 requireとrequire_onceの使用
    5.3 PHPのバージョンの互換性
    5.4 PHPのオブジェクト
        5.4.1 使用される用語
        5.4.2 クラスの宣言
        5.4.3 オブジェクトの作成
        5.4.4 オブジェクトへのアクセス
        5.4.5 コンストラクタ
        5.4.6 メソッドの記述
        5.4.7 プロパティの宣言
        5.4.8 定数の宣言
        5.4.9 PHP 5のプロパティとメソッドのスコープ
        5.4.10 継承
    5.5 確認テスト

6章 PHPの配列
    6.1 基本的なアクセス
        6.1.1 数値でインデックス化される配列
        6.1.2 連想配列
        6.1.3 arrayキーワードを使った値の代入
    6.2 foreach...asループ
    6.3 多次元配列
    6.4 配列の関数の使用
        6.4.1 is_array
        6.4.2 count
        6.4.3 sort
        6.4.4 shuffle
        6.4.5 explode
        6.4.6 extract
        6.4.7 compact
        6.4.8 reset
        6.4.9 end
    6.5 確認テスト

7章 実践的なPHP
    7.1 printfの使用
        7.1.1 精度の設定
        7.1.2 ストリングの埋め合わせ
        7.1.3 sprintfの使用
    7.2 日付けと時刻の関数
        7.2.1 日付けに関する定数
        7.2.2 checkdateの使用
    7.3 ファイルの処理
        7.3.1 ファイルが存在するかどうかを調べる
        7.3.2 ファイルの作成
        7.3.3 ファイルの読み取り
        7.3.4 ファイルのコピー
        7.3.5 ファイルの移動
        7.3.6 ファイルの消去
        7.3.7 ファイルの更新
        7.3.8 同時的アクセスに備えたファイルのロック
        7.3.9 ファイル全体の読み取り
        7.3.10 ファイルのアップロード
    7.4 システムコール
    7.5 XHTML
        7.5.1 XHTMLのメリット
        7.5.2 XHTMLのバージョン
        7.5.3 ルールの違い
        7.5.4 HTML 4.01ドキュメントタイプ
        7.5.5 HTML 5ドキュメントタイプ
        7.5.6 XHTML 1.0ドキュメントタイプ
        7.5.7 XHTMLの検証
    7.6 確認テスト

8章 MySQL入門
    8.1 MySQLの基本
    8.2 データベースの用語に関するまとめ
    8.3 MySQLへのコマンドラインからのアクセス
        8.3.1 コマンドラインのインターフェイスの開始
        8.3.2 コマンドラインインターフェイスの使用
        8.3.3 MySQLのコマンド
        8.3.4 データ型
    8.4 インデックス
        8.4.1 インデックスの作成
        8.4.2 MySQLデータベースへの照会
        8.4.3 テーブルの結合
        8.4.4 論理演算子の使用
    8.5 MySQL関数
    8.6 phpMyAdminの導入
        8.6.1 phpMyAdminの使用
    8.7 確認テスト

9章 MySQLのマスター
    9.1 データベースの設計
        9.1.1 主キー:リレーショナルデータベースのカギ
    9.2 正規化
        9.2.1 第1正規形
        9.2.2 第2正規形
        9.2.3 第3正規形
        9.2.4 正規化を使用すべきでないとき
    9.3 リレーションシップ
        9.3.1 1対1
        9.3.2 1対多
        9.3.3 多対多
        9.3.4 データベースと匿名性
    9.4 トランザクション
        9.4.1 トランザクションのストレージエンジン
        9.4.2 BEGINの使用
        9.4.3 COMMITの使用
        9.4.4 ROLLBACKの使用
        9.4.5 EXPLAINの使用
    9.5 バックアップとリストア
        9.5.1 mysqldumpの使用
        9.5.2 バックアップファイルの作成
        9.5.3 バックアップファイルからのリストア
        9.5.5 CSV形式でのデータのダンプ
        9.5.5 バックアップの計画
    9.6 確認テスト

10章 PHPを使ったMySQLへのアクセス
    10.1 PHPを使ってMySQLデータベースにクエリを出す
        10.1.1 PHPからMySQLを使用する手順
        10.1.2 ログインファイルの作成
        10.1.3 MySQLへの接続
    10.2 実践的なサンプル
        10.2.1 $_POST配列
        10.2.2 レコードの消去
        10.2.3 フォームの表示
        10.2.4 データベースへのクエリの発行
        10.2.5 プログラムを実行する
    10.3 実践的なMySQL
        10.3.1 テーブルの作成(CREATE)
        10.3.2 テーブルの列情報の表示(DESCRIBE)
        10.3.3 テーブルの削除(DROP)
        10.3.4 データの追加(INSERT INTO)
        10.3.5 データの取得(SELECT)
        10.3.6 データの更新(UPDATE)
        10.3.7 データの消去(DELETE)
        10.3.8 AUTO_INCREMENTの使用
        10.3.9 追加クエリの実行
        10.3.10 SQLインジェクション対策
        10.3.11 HTMLインジェクション対策
    10.4 確認テスト

11章 フォーム処理
    11.1 フォームの構築
    11.2 送信データの取得
        11.2.1 register_globals:旧来の解決策
        11.2.2 デフォルト値
        11.2.3 入力タイプ
        11.2.4 入力のサニタイジング
    11.3 サンプルプログラム
    11.4 確認テスト

12章 クッキー、セッション、認証
    12.1 PHPでのクッキーの使用
        12.1.1 クッキーの設定
        12.1.2 クッキーへのアクセス
        12.1.3 クッキーの破棄
    12.2 HTTP認証
        12.2.1 ユーザー名とパスワードの保持
        12.2.2 ソルト
    12.3 セッションの使用
        12.3.1 セッションの開始
        12.3.2 セッションの終了
        12.3.3 セッションのセキュリティ
    12.4 確認テスト

13章 JavaScriptを探る
    13.1 JavaScriptとHTMLテキスト
        13.1.1 スクリプトをドキュメントのヘッダ内で使用する
        13.1.2 旧式のブラウザや標準的でないブラウザ
        13.1.3 JavaScriptファイルを含める
        13.1.4 JavaScriptエラーのデバッグ
    13.2 コメントの使用
    13.3 セミコロン
    13.4 変数
        13.4.1 ストリングの変数
        13.4.2 数値の変数
        13.4.3 配列
    13.5 演算子
        13.5.1 算術演算子
        13.5.2 代入演算子
        13.5.3 比較演算子
        13.5.4 論理演算子
        13.5.5 インクリメントとデクリメント
        13.5.6 ストリングの連結
        13.5.7 文字のエスケープ
    13.6 変数の型付け
    13.7 関数
    13.8 グローバル変数
        13.8.1 ローカル変数
    13.9 Document Object Model(DOM)
        13.9.1 しかしそれほど単純ではない
        13.9.2 DOMの使用
    13.10 確認テスト

14章 JavaScriptの式と制御フロー
    14.1 式
        14.1.1 リテラルと変数
    14.2 演算子
        14.2.1 演算子の優先順位
        12.2.2 結合性
        14.2.3 関係演算子
    14.3 withステートメント
    14.4 onerrorの使用
    14.5 try...catchの使用
    14.6 条件
        14.6.1 ifステートメント
        14.6.2 switchステートメント
        14.6.3 ?演算子
    14.7 ループ
        14.7.1 whileループ
        14.7.2 do...whileループ
        14.7.3 forループ
        14.7.4 ループを抜け出る
        14.7.5 continueステートメント
    14.8 明示的なキャスト
    14.9 確認テスト

15章 JavaScriptの関数、オブジェクト、配列
    15.1 JavaScriptの関数
        15.1.1 関数の定義
        15.1.2 値を返す
        15.1.3 配列を返す
    15.2 JavaScriptのオブジェクト
        15.2.1 クラスの宣言
        15.2.2 オブジェクトの作成
        15.2.3 オブジェクトへのアクセス
        15.2.4 prototypeキーワード
    15.3 JavaScriptの配列
        15.3.1 数値でインデックス化される配列
        15.3.2 連想配列
        15.3.3 多次元配列
        15.3.4 配列のメソッドの使用
    15.4 確認テスト

16章 JavaScriptとPHPによる検証とエラー処理
    16.1 JavaScriptを使ったユーザー入力の検証
        16.1.1 validate.htmlドキュメント(パート1)
        16.1.2 validate.htmlドキュメント(パート2)
    16.2 正規表現
        16.2.1 メタ文字によるマッチ
        16.2.2 あいまいな文字マッチング
        16.2.3 かっこを使ったグループ化
        16.2.4 文字クラス
        16.2.5 さらに複雑な例
        16.2.6 メタ文字のまとめ
        16.2.7 全体的な修飾子
        16.2.8 JavaScriptでの正規表現の使用
        16.2.9 PHPでの正規表現の使用
    16.3 フォームをPHPで検証した後再表示する
    16.4 確認テスト

17章 Ajaxの使用
    17.1 Ajaxとは?
    17.2 XMLHttpRequestの使用
    17.3 POST要求を介したAjaxの実装
        17.3.1 readyStateプロパティ
        17.3.2 サーバーサイドのAjax処理
    17.4 POSTの代わりにGETを使用する
    17.5 XML要求の送信
        17.5.1 XMLについて
        17.5.2 XMLを使用する理由
    17.6 Ajaxフレームワークの使用
    17.7 確認テスト

18章 CSS入門
    18.1 スタイルシートのインポート
        18.1.1 スタイルシートのHTML内からのインポート
    18.2 埋め込みによるスタイル設定
        18.2.1 IDの使用
        18.2.2 クラスの使用
    18.3 CSSルール
        18.3.1 セミコロンの使用
        18.3.2 複数の割り当て
        18.3.3 コメントの使用
    18.4 スタイルのタイプ
        18.4.1 デフォルトスタイル
        18.4.2 ユーザースタイル
        18.4.3 外部スタイルシート
        18.4.4 内部スタイル
        18.4.5 インラインスタイル
    18.5 CSSセレクタ
        18.5.1 タイプセレクタ
        18.5.2 子孫セレクタ
        18.5.3 子セレクタ
        18.5.4 隣接セレクタ
        18.5.5 IDセレクタ
        18.5.6 クラスセレクタ
        18.5.7 属性セレクタ
        18.5.8 ユニバーサルセレクタ
        18.5.9 グループによる選択
    18.6 CSSのカスケード処理
        18.6.1 スタイルシートの作成者による優先順位
        18.6.2 スタイルシートの作成方法による優先順位
        18.6.3 スタイルシートのセレクタによる優先順位
    18.7 18.7 <div>と<span>の違い
    18.8 計測単位
    18.9 フォントとタイポグラフィ
        18.9.1 font-family
        18.9.2 font-style
        18.9.3 font-size
        18.9.4 font-weight
    18.10 テキストのスタイル管理
        18.10.1 装飾
        18.10.2 間隔
        18.10.3 整列
        18.10.4 大文字、小文字変換
        18.10.5 インデント
    18.11 CSSのカラー
        18.11.1 カラーの省略表記
        18.11.2 グラデーション
    18.12 要素の配置
        18.12.1 絶対配置
        18.12.2 相対配置
        18.12.3 固定配置
        18.12.4 配置方法の比較
    18.13 擬似クラス
    18.14 擬似要素
    18.15 ルールの省略表記
    18.16 ボックスモデルとレイアウト
        18.16.1 マージンの設定
        18.16.2 境界の適用
        18.16.3 パディングの調整
        18.16.4 オブジェクトのコンテンツ
    18.17 確認テスト

19章 CSS3による高度なCSS
    19.1 CSS3の属性セレクタ
        19.1.1 ストリングの一部にマッチ
    19.2 box-sizingプロパティ
    19.3 CSS3の背景
        19.3.1 background-clipプロパティ
        19.3.2 background-originプロパティ
        19.3.3 background-sizeプロパティ
        19.3.4 複数の背景
    19.4 CSS3の境界
        19.4.1 border-colorプロパティ
        19.4.2 border-radiusプロパティ
    19.5 ボックスシャドウ
    19.6 要素のオーバーフロー
    19.7 マルチカラムレイアウト
    19.8 カラーと不透明度
        19.8.1 HSLカラー
        19.8.2 HSLAカラー
        19.8.3 RGBカラー
        19.8.4 RGBAカラー
        19.8.5 opacityプロパティ
    19.9 テキストエフェクト
        19.9.1 text-shadowプロパティ
        19.9.2 text-overflowプロパティ
        19.9.3 word-wrapプロパティ
    19.10 Webフォント
        19.10.1 GoogleのWebフォント
    19.11 変換
    19.12 トランジション(時間経過にともなう変化)
        19.12.1 トランジションさせるプロパティ
        19.12.2 トランジションにかける時間
        19.12.3 トランジションの遅延
        19.12.4 トランジションのタイミング
        19.12.5 簡略化したシンタックス
    19.13 確認テスト

20章 JavaScriptからのCSSへのアクセス
    20.1 再度、getElementByIdメソッド
        20.1.1 O関数
        20.1.2 S関数
        20.1.3 C関数
        20.1.4 関数のインクルード
    20.2 JavaScriptからCSSプロパティへのアクセス
        20.2.1 よく使用されるプロパティ
        20.2.2 そのほかのプロパティ
    20.3 インラインJavaScript
        20.3.1 thisキーワード
        20.3.2 スクリプトの中でオブジェクトにイベントを追加する
        20.3.3 割り当てることのできるイベント
    20.4 新しい要素の追加
        20.4.1 要素の削除
        20.4.2 要素を追加し削除する別の方法
    20.5 割り込みの使用
        20.5.1 setTimeoutの使用
        20.5.2 タイムアウトのキャンセル
        20.5.3 setIntervalの使用
        20.5.4 割り込みを使ったアニメーション
    20.6 確認テスト

21章 総まとめ
    21.1 ソーシャルネットワーキングの設計
    21.2 Webサイトについて
    21.3 functions.php
        21.3.1 プロジェクトで使用する主要関数
    21.4 header.php
    21.5 setup.php
    21.6 index.php
    21.7 signup.php
        21.7.1 ユーザー名の可用性のチェック
    21.8 checkuser.php
    21.9 login.php
    21.10 profile.php
        21.10.1 "about me"テキストの追加
        21.10.2 プロファイル用イメージの追加
        21.10.3 イメージ処理
        21.10.4 現在のプロファイルの表示
    21.11 members.php
        21.11.1 ユーザーのプロファイルの表示
        21.11.2 友達の追加と削除
        21.11.3 メンバーの一覧表示
    21.12 friends.php
    21.13 messages.php
    21.14 logout.php
    21.15 styles.css

付録A	確認テストの模範解答

付録B	オンラインリソース

付録C	MySQLのFULLTEXTストップワード

付録D	MySQLの関数

索引

ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。

■P.97 1行目
誤:PHPで変数名の前に$記号をつけることは、
正:PHPで変数名の前に&記号をつけることは、

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]