秀和システム


TECHNICAL MASTER はじめてのPHPプログラミング 基本編 5.3対応

本書には、以下のサポートがあります。

閉じる

ダウンロード

本書CD-ROMにMySQLソフトウェアが未収録となっていました。
※書籍内容は、SQLiteデータベースで解説しております。本書での学習にMySQLインストールは必要ではありません。MySQLの付録収録は、本書学習後の次のステップでの使用を意図しております。

以下をクリックすると、ダウンロードが始まります。
サンプルファイルのダウンロード
一括ダウンロード
TMPHP53.zip (122MB)
ダウンロード
mysql-5.1.30-win32.zip
apache_2.2.9-win32-x86-no_ssl-r2.msi
php-5.2.6-Win32.zip
hajimete_php5.zip
 などが含まれています

※クリックしてもダウンロードが始まらないときは、右クリックして「対象をファイルに保存」で実行してください。

※データは圧縮形式になっています。解凍ソフトをご利用下さい。

新しいウィンドウで開きます  解凍ソフトダウンロード方法

 

著者HPへのリンク

  新しいウィンドウで開きます 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」に変更して保存してください。
ファイルの文字コードでeuc-jpとshift_jisの両方を扱えるエディタを利用していない場合は、213ページで紹介しているサクラエディタがありますので、こちらをご利用のうえ、japanese.inc.phpの変更、保存を実行してください。japanese.inc.phpの『ファイルの保存形式』を「shift_jis」で保存しない場合、SQLiteManagerで文字化けの原因となります。
※サクラエディタは本書付属CD-ROMにも収録しています。

225ページ
「並べ替え」について

SQLiteManagerで「並べ替え」実行時の注意

本書225~227ページで紹介している「並べ替え」コマンドをSQLiteManagerで実行した場合、降順(ORDER BY id DESC)で実行しても昇順(ORDER BY id ASC)実行時と同じ表示になってしまいますが、これはSQLiteManagerの表示上の仕様によるものです。

SQL コマンドとしては、ASC、DESC いずれの並び替えもありますので、PHPプログラム(SQLプログラム)を作製の際は、ORDER BY の ASC(昇順)、DESC(降順)いずれも使えます。

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.

秀和システム