本書には、以下のサポートがあります。
本書CD-ROMにMySQLソフトウェアが未収録となっていました。
※書籍内容は、SQLiteデータベースで解説しております。本書での学習にMySQLインストールは必要ではありません。MySQLの付録収録は、本書学習後の次のステップでの使用を意図しております。
サンプルファイルのダウンロード | |
---|---|
一括ダウンロード |
※クリックしてもダウンロードが始まらないときは、右クリックして「対象をファイルに保存」で実行してください。
※データは圧縮形式になっています。解凍ソフトをご利用下さい。
http://www.doyouphp.jp/book/book_hajimete.shtml
※本書に関する最新情報や正誤表などを紹介しています。
場所 | 訂正内容 |
---|---|
7ページ 下から2行目 |
誤 … 「展開されてファイルを表示する」 正 … 「展開されたファイルを表示する」 |
9ページ php.iniの編集 |
php.iniの編集で、694行目の「;extension=php_sqlite.dll」の行もアンコメントし「extension=php_sqlite.dll」としてください。 追加 … 694 extension=php_sqlite.dll |
157ページ 「PHPをApacheに組み込む」 2行目 |
誤 … C:¥Program Files¥Apache Group¥Apache2¥conf¥httpd.conf 正 … C:¥Program Files¥Apache Software Foundation¥Apache2.2¥conf¥httpd.conf |
175ページ 3行目 |
誤 … $_FILES["username"]["name"] 正 … $_FILES["userfile"]["name"] |
191ページ 最終行 session_set_cookie_params関数 |
誤 … session_set_cookie_params(クッキー名, クッキーの値, 有効期限, URLパス, ドメイン, セキュア属性, HTTPのみ有効かどうか) 正 … session_set_cookie_params(有効期限, URLパス, ドメイン, セキュア属性, HTTPのみ有効かどうか) |
201ページ JavaScriptの断片を入力した結果 表示画面内の文字 |
誤 … あいうえお 正 … こんにちは |
212ページ japanese.inc.phpについて |
ファイル保存時の注意 212ページの記述『ファイルの文字コードをSJIS(Shift_JIS)に変更して保存してください』のとおりに、japanese.inc.phpを「euc-jp」→「shift_jis」のように変更したら、必ずエディタで保存するときにjapanese.inc.phpの『ファイルの保存形式』も「shift_jis」に変更して保存してください。 |
225ページ 「並べ替え」について |
SQLiteManagerで「並べ替え」実行時の注意 本書225~227ページで紹介している「並べ替え」コマンドをSQLiteManagerで実行した場合、降順(ORDER BY id DESC)で実行しても昇順(ORDER BY id ASC)実行時と同じ表示になってしまいますが、これはSQLiteManagerの表示上の仕様によるものです。 |
235ページ 中段 プログラムソースのタイトル |
誤 … sqlite_open関数の使用例 正 … sqlite_query関数の使用例 |
239ページ 上段 プログラムソース 5行目 |
誤 … sqlite_clode($dbhandle); 正 … sqlite_close($dbhandle); |
280ページ セキュリティ対策用の関数を用意する |
訂正と注意 本書で作成しているセキュリティ対策用関数(security.php)のdbescape関数には不具合があり、渡されたパラメータを正しくエスケープ処理できない場合があります。このため、dbescape関数を利用したWebアプリケーションを絶対にインターネット上に公開しないようにしてください。 正しい対処法としては、データベースのバインド機能を使うことです。バインド機能とは、dbescape関数のように、SQLにあらかじめパラメータを埋め込む箇所を指定しておき、あとでパラメータを埋め込む、というものです。しかし、本書で使っているSQLite(SQLite2)はバインド機能を持っていないため、文字列をエスケープしてSQLを作る必要があり、dbescape関数としてまとめようとした訳ですが、返ってSQLインジェクション脆弱性を生じさせる結果となってしまいました。大変申し訳ありません。 バインド機能を持っているデータベースであれば、PHPの関数として「xxx_bind」などの関数が用意されていることがほとんどですが、バインド機能を持っていないデータベースに対しては、PDO(PHP Data Objects)と呼ばれるクラス群が利用できます。PDOは共通のクラスやメソッドを使って、異なるデータベースにアクセスすることができるというもので、バインド機能を持っていないデータベースに対しても擬似的にバインド機能が使えるようになっています。 ※より詳細に関しては 著者のサイトにてご確認下さい。 |
Copyright ©SHUWA SYSTEM CO.,LTD All rights reserved.