本書の内容に次のような誤りがありました。お詫びして訂正いたします。 [2006/05/29]
■初刷、第2刷
stripslashes関数の追加
PHPの設定ファイル(php.ini)の標準設定では、フォームのGETとPOSTで渡される文字列やCOOKIEの文字列をエスケープ処理し、「」「’」「”」の前に「」(バックスラッシュ)が付け加えられます。エスケープ処理には、フォームからの意図しないコマンドの実行を防ぐ役割がありますが、それによって日本語が文字化けしてしまうことがあります。エスケープ処理による日本語の文字化けを回避するためには、stripslashes関数を使って受け取った文字列から「」を取り除いてください。
【例】$memo = stripslashes( $_GET[“memo”] );
エスケープ処理は、設定ファイルphp.iniの「magic_quotes_gpc」パラメータでOn/Offを切り替えられます。Offにした場合は、addslashes関数で必要な箇所にエスケープ処理を施すことになります。
本書のサンプルでは、以下のリストにstripslashes関数を設定してください。
P.100 リスト(enquete1.php)20行目と21行目
$name1 = stripslashes( $_POST[“name1”] );
$name2 = stripslashes( $_POST[“name2”] );
P.109 リスト(enquete2.php)17行目と18行目
$name1 = stripslashes( $_POST[“name1”] );
$name2 = stripslashes( $_POST[“name2”] );
P.195 リスト(Schedule.class.01.php)84行目と85行目と86行目
$this->splace = stripslashes( $_POST[“splace”] );
$this->stitle = stripslashes( $_POST[“stitle”] );
$this->contents = stripslashes( $_POST[“contents”] );
p.76「forループ」の説明
forループの動作について、[1]~[4]の流れで記載しておりますが、記述に誤りがあります。正しくは以下のとおりです。
[1]変数の初期化を行う(式1)
[2]条件(式2)を判定し、条件が合わなければ(FALSEであれば)forループを終了して「}」の次の行へ進む。条件が合えば、文または「{」と「}」に挟まれた文を1回実行する
[3]条件に使う変数を更新する(式3)
[4][2]に戻る
このため、p.76の最後の記載「~forループは説明からもわかるように、文を最低でも1回実行します。」という部分も誤りです。最初の[2]の判定で条件が合わなかった場合、1回も実行しないことになります。
p.101 リスト(enquete1.php)52行目
誤
<meta http-equiv=\“Content-Type\” content=\“text/html; charset=Shift_JIS\“>
正
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>
p.122 リスト(form_mail.php)35行目
誤
<meta http-equiv=\“Content-Type\” content=\“text/html; charset=Shift_JIS\“>
正
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>
p.240 リスト(graph_home.html)2行目
誤
<meta http-equiv=\“Content-Type\” content=\“text/html; charset=Shift_JIS\“>
正
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>
本書の内容に次のような誤りがありました。お詫びして訂正いたします。 [2005/3/25]
■初刷
p.268 ソースリスト「chsetting.php」11行目
誤:
md5(trim($_POST[‘current_password’] , FALSE)))
正:
md5(trim($_POST[‘current_password’]) , FALSE))
p.227 3行目
誤:
英語曜日名と数値を対応させる配列$month~
正:
英語月名と数値を対応させる配列$month~
p.179 「表6-1●usersテーブルの定義」が間違っています。正しくは、次のとおりです。
名前 | 型 | 制約 | 説明 |
idno | integer | primary key | ユーザID(名前)が変更されても管理の基準となるユーザの整理番号 |
user | varchar(8) | - | ユーザID |
pass | char(8) | - | パスワード |