パーフェクト
PHP

サポートページ

ダウンロード

本書に関するサンプルファイルをダウンロードできます。

データは、圧縮ファイル形式でダウンロードできます。圧縮ファイルをダウンロードしていただき、適宜解凍してご利用ください。

お詫びと訂正(正誤表)

本書の以下の部分に誤りがありました。ここに訂正するとともに、ご迷惑をおかけしたことを深くお詫び申し上げます。

(2012年8月20日更新)

P.022 上から7行目付近 (3刷修正済み)

誤 CentOS/Fedoraでは/etc/php/php.iniがphp.iniファイルになります
正 CentOS/Fedoraでは/etc/php.ini がphp.iniファイルになります。

P.024 真ん中のインストール (3刷修正済み)

誤 Mac OS Xではportコマンドからインストールします

----
$ sudo port install php5
$ sudo port install php5-devel php5-mbstring php5-mysql
$ sudo port mysql5-server
----

正 Mac OS Xではportコマンドからインストールします

----
$ sudo port install php5
$ sudo port install php5-devel php5-mbstring php5-mysql
$ sudo port install mysql5-server
$ sudo /opt/local/apache2/bin/apxs -a -e -n "php5" libphp5.so
$ sudo sh -c "echo 'Include conf/extras-conf/mod_php.conf' >> /opt/local/apache2/conf/httpd.conf"
----

P.083 「PHP Notice~~」のリストの前、下から3行目

誤 この例の場合、3つのい要素が
正 この例の場合、3つの要素が

P.198 7.1本文1行目

誤 本章ではフレームワークの作成と、それを用いたWebアプリケーションの作成を行います。
正 本章と次章では、フレームワークの作成とそれを用いたWebアプリケーションの作成を行います。

P.201 下から5行目付近

誤 アプリゲーションごとに
正 アプリケーションごとに

P.202 図7.1(3刷修正済み)

誤 Settion
正 Session

P.237 リスト7.15 run() メソッド内のif文(3刷修正済み)

誤

if ($param === false) {

正

if ($params === false) {

P.312 リスト8.32 3行目 (3刷修正済み)

誤

class AccountController extends Controller

正

class StatusController extends Controller

P.339~341 9.4.3 対応方法 (3刷修正済み)

http://www.tokumaru.org/d/20110127.htmlで脆弱性指摘あり。修正済みコードは以下からダウンロードできます。

P.359 本文 下から5行目

誤  +document.cookie;</script>
正  %2Bdocument.cookie;</script>

P397 本文 上から5行目

誤  file=../../../../../../../etc/passwd%00
正  design=../../../../../../../etc/passwd%00

P.389 リスト10.21 (3刷修正済み)

誤

eval("echo htmlspecialchars(str_replace(" . $_GET['keyword'].
    ",'', ".$string."), ENT_QUOTES, 'UTF-8');");

正

eval("echo htmlspecialchars(str_replace('" . $_GET['keyword'].
    "','', '".$string."'), ENT_QUOTES, 'UTF-8');");

P.389 本文 上から3行目 (3刷修正済み)

誤  ところが、このプログラムに「?keyword=phpinfo()」とつけてアクセスすると、phpinfo()関数の結果が表示されてしまいます。これは、$_GET['keyword']の値「phpinfo()」がeval()関数によって実行されてしまうためです。
正  ところが、このプログラムに「?keyword='.phpinfo().'」とつけてアクセスすると、phpinfo()関数の結果が表示されてしまいます。これは、$_GET['keyword']の値に含まれている「phpinfo()」がeval()関数によって実行されてしまうためです。

P.389 リスト10.22 (3刷修正済み)

誤

if (strpos($string, $_GET['keyword']) !== false) {
    eval("echo htmlspecialchars(str_replace(".$_GET['keyword'].
        ",'', ".$string."), ENT_QUOTES, 'UTF-8');");
}

正

if (strpos($string, $_GET['keyword']) !== false) {
    eval("echo htmlspecialchars(str_replace('".$_GET['keyword'].
        "','', '".$string."'), ENT_QUOTES, 'UTF-8');");
}

P.405 リスト 10.38のファイル名

誤

 command_injection_04.php

正

 command_injection_03.php