本書は、PHPとMySQLという定番の組み合わせに、JavaScriptとCSSの必須知識を加えて解説するウェブ開発者やデザイナのための入門書です。ウェブサイトやデザインの開発現場における4つのコアな技術(PHP、MySQL、JavaScript、CSS)とその実践的な知識を、1冊の書籍の中で通して解説しています。PHP言語の基礎とMySQLデータベースシステムの解説を経て、PHPとMySQLを組み合わせて動的なウェブページを作成。さらに、クッキーやセッションの扱い方、高いレベルでセキュリティを維持する方法など、PHPとMySQLの開発の核心となる実用的なトピックにも取り組みます。またJavaScriptの基礎を経て、Ajaxを使ってウェブサイトをダイナミックなものにする方法について学びます。CSSは基礎から実用的な用途までを解説します。プログラミングについての実践的なテクニックやヒントなども随所に数多く含まれるウェブ開発者のための決定版入門書です。
初めてのPHP、MySQL、JavaScript&CSS 第2版
Robin Nixon 著、永井 勝則 訳
- TOPICS
- Programming , Web , Database , HTML/CSS , JavaScript , PHP
- 発行年月日
- 2013年08月
- PRINT LENGTH
- 604
- ISBN
- 978-4-87311-633-4
- 原書
- Learning PHP, MySQL, JavaScript, and CSS, 2nd Edition
- FORMAT
- Print PDF
正誤表
ここで紹介する正誤表には、書籍発行後に気づいた誤植や更新された情報を掲載しています。以下のリストに記載の年月は、正誤表を作成し、増刷書籍を印刷した月です。お手持ちの書籍では、すでに修正が施されている場合がありますので、書籍最終ページの奥付でお手持ちの書籍の刷版、刷り年月日をご確認の上、ご利用ください。
第1刷への正誤表
■P.97 1行目 誤:PHPで変数名の前に$記号をつけることは、 正: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の関数 索引