発生刷 |
ページ数 |
書籍改訂刷 |
電子書籍訂正 |
内容 |
登録日 |
1刷 |
004
本書の構成 上から7行目 |
2刷 |
済 |
誤 |
Part-1ではPHP/MySQLの環境構築方法を
|
正 |
Part1ではPHP/MySQL の環境構築方法を、
Part と 1との間の「-(ハイフン)」を削除します。
同様に8行目のPart-2、
9行目のPart-3、Part-2のハイフンも削除します。 |
|
2021.03.24 |
1刷 |
005
ブラウザ対応について |
2刷 |
済 |
誤 |
Windows Windows Explorer 11/Microsoft Edge 40/Firefox 55/Google Chrome 61
Mac safari 10/Google Chrome61 |
正 |
Windows Internet Explorer 11/Microsoft Edge 40/Firefox 55/Google Chrome 61
Mac safari 10/Google Chrome 61 |
備
考 |
2021.03.24更新 |
|
2021.03.24 |
1刷 |
010
「Chrome をインストールし、機能を確認する」1行目 |
2刷 |
済 |
誤 |
本書では、検証用ブラウザにChrome(クロム、クローム)を使います。 |
正 |
本書では、検証用ブラウザにChrome(クローム)を使います。 |
|
2021.03.24 |
1刷 |
012
「テキストエディタ「Atom」をダウンロードする」の「Atom」の図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.03.24 |
1刷 |
016
1つ目の見出し |
2刷 |
済 |
|
2020.08.21 |
1刷 |
018
「インストールと設定」本文 |
2刷 |
済 |
誤 |
|
正 |
ここでダウンロードしたファイルを実行します。インストールが始まるので、案内に沿って操作を進めてください。Windows では「現在のアカウントでは機能が制限されるかもしれない」という警告が出ますが、「OK」を押します。ここから先はインストールが始まるまですべて「Next」を選択します。途中、インストール先が表示されますので確認してください。デフォルトでWindows は「C:¥xampp」に、Mac は「/Application/XAMPP」にインストールされます。
インストールが終わると「Finish」ボタンが現れます。それを押すと言語を選択する画面が現れるのでアメリカ国旗(英語)を選択してください。XAMPP のコントロールパネルが開きます。Apache とMySQL の「Start」ボタンを押してください。正常に起動すれば次のようになります。
-------------------------------------------
上記文章に差し替え、「Warning」の画面を削除します。
また、以下のMEMOも加えます
-------------------------------------------
[MEMO]
Mac 版は「Manage Servers」というタブをクリックして設定ページを開きます。
デザインは画像とは異なります。また、Mac 版はXampp のインストール方法も頻繁に変更されていますので、その都度最新のインストール方法を検索してください。
次回以降、コントロールパネルを開くにはWindows では「C:¥xampp¥xampp-control.exe」を、Macでは「/Application/XAMPP/xamppfiles/manager-osx.app」をダブルクリックして開きます。学習用にこちらのファイルのショートカットをデスクトップに作っておくことをおすすめします。 |
|
2021.03.24 |
1刷 |
025
上から1~3行目 |
2刷 |
済 |
誤 |
同じく、「File」メニューから「Save As…」を選択してください。これで「名前を付けて保存」することができます。ファ
イル名は「sample.html」としてデスクトップ上に作成してください。 |
正 |
ショートカットの[Ctrl]([command])+[S]を使い、ファイル名を「sample.html」としてデスクトップ上に保存し
てください。 |
|
2021.03.25 |
1刷 |
030
「ブラウザを使ってプログラムを動作させる」1行目 |
2刷 |
済 |
|
2021.03.25 |
1刷 |
033
「文字列を連結する」の図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
備
考 |
「さん、こんにちは」の末尾に「!」を追加しています。 |
|
2021.03.25 |
1刷 |
034
ATTENTION 下から2行目 |
2刷 |
済 |
誤 |
と波カッコで変数を囲む必要があります。 |
正 |
と中括弧で変数を囲む必要があります。 |
|
2021.03.25 |
1刷 |
041
「入力フォームを作成する」5行目 |
2刷 |
済 |
誤 |
「./」を入れておくと |
正 |
「./」*(カレントディレクトリ)を入れておくと |
|
2021.03.25 |
1刷 |
041
「入力フォームを作成する」本文下から1行目 |
2刷 |
済 |
誤 |
|
正 |
* 複数ファイルで構成されるプログラムで実行する場合、最初に実行するファイルからの相対位置となるため「./」はなくてもかまいません。実際の開発では「./」を入れて絶対位置を使いますが、本書は、次章以降、学習しやすいように相対で表記します。
上記注意書きを追加いたします。 |
|
2021.03.25 |
1刷 |
043
「POST データを受信する」の1つ目のCODE「confirm.php」の続き 4行目 |
2刷 |
済 |
誤 |
<form action="complete.php" method="POST"> |
正 |
<form action="./complete.php" method="POST">
同様に以下の箇所も修正します。
44ページ:「hidden を使ってデータを渡す」のCODE「confirm.php」上から1行目
46ページ:CODE「send.php」下から9行目
47ページ:CODE「confirm.php」下から7行目 |
|
2021.03.25 |
1刷 |
045
「Chromeのデベロッパーツールを使ってhiddenの中身を確認する」掲載の図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.03.29 |
1刷 |
046
CODE「complete.php」の❶ |
2刷 |
済 |
|
2020.08.21 |
1刷 |
046
CODE「complete.php」の2行目 |
2刷 |
済 |
誤 |
$name = $_POST['user_name']; |
正 |
$user_name = $_POST['user_name'];
同様に以下の箇所も修正します。
47ページ
CODE「confirm.php」2行目
CODE「complete.php」2行目
|
備
考 |
2021.03.29更新 |
|
2020.08.21 |
1刷 |
051
CODE「if.php」下から2行目 |
2刷 |
済 |
誤 |
echo '入力した数値が違います'; |
正 |
echo '入力した数値が違います。'; |
備
考 |
「。」を追加します。 |
|
2021.03.29 |
1刷 |
052
CODE「time.php」の下の段落3行目 |
2刷 |
済 |
誤 |
9章で詳しく扱います)。 |
正 |
11章で詳しく扱います)。 |
|
2021.03.29 |
1刷 |
053
MEMO 2行目 |
2刷 |
済 |
誤 |
date.timezoneの項目を探して |
正 |
date.timezone=Europe/Berlin と書かれた行を探して |
|
2021.03.29 |
1刷 |
053
MEMO 下から1行目 |
2刷 |
済 |
誤 |
|
正 |
php.iniの設定を反映させるにはApacheを再起動させる必要があります。
上記文章を加えます。 |
|
2021.03.29 |
1刷 |
054
MEMO 下から2行目 |
2刷 |
済 |
誤 |
自身で使わないとしても他人の |
正 |
自身で使わないとしても他者の |
|
2021.03.29 |
1刷 |
055
CODE「condition1.php」7~8行目 |
2刷 |
済 |
誤 |
}elseif($score >= 80 && $score< 100){
echo '優秀な点数です'; |
正 |
}elseif($score >= 80 && $score < 100){
echo '優秀な点数です。
|
備
考 |
$scoreと<の間に半角スペースを入れ、
「優秀な点数です」の末尾に「。」を追加します。 |
|
2021.03.29 |
1刷 |
056
CODE「condition2.php」2行目のコメント |
3刷 |
済 |
誤 |
②1-100までの数値がランダムに代入される |
正 |
②0-100までの数値がランダムに代入される |
|
2023.06.20 |
1刷 |
056
表「論理演算子」の「!」の意味 |
2刷 |
済 |
誤 |
否定( ではなかったら) |
正 |
否定( ではなかったら、TRUE) |
|
2021.04.02 |
1刷 |
058
CODE「nest2.php」の上から2~3行目
|
2刷 |
済 |
誤 |
~省略~
}else{ |
正 |
~省略~
}elseif($attend === 1){ |
備
考 |
2021.04.02更新 |
|
2018.03.28 |
1刷 |
063
CODE「validate.php」7行目 |
2刷 |
済 |
誤 |
}elseif(mb_strlen($movie) >= 20){ |
正 |
}elseif(mb_strlen($movie) > 20){ |
|
2020.08.21 |
1刷 |
074
練習 ①のCODEの見出し |
2刷 |
済 |
誤 |
pratice_for.php |
正 |
pratice_for1.php |
|
2018.04.17 |
1刷 |
076
「現在の年を取得する」のCODE「birth_form.php」1行目 |
2刷 |
済 |
誤 |
<select name="year" id="year"> |
正 |
<select name="year"> |
備
考 |
2021.04.02更新 |
|
2018.10.04 |
1刷 |
079
第6章 扉 |
2刷 |
済 |
|
2021.04.02 |
1刷 |
082
1つ目のCODEの見出し |
2刷 |
済 |
誤 |
: array_assoc1.php |
正 |
array_assoc1.php |
|
2021.04.02 |
1刷 |
082
1つ目のCODEの最下行 |
2刷 |
済 |
誤 |
var_dump( ); |
正 |
var_dump($array); |
|
2021.04.02 |
1刷 |
082
2つ目のCODE「array_assoc2.php」2行目 |
2刷 |
済 |
誤 |
echo $array['name ']; |
正 |
echo $array['name']; |
備
考 |
nameのあとの半角スペースを削除します。 |
|
2018.03.28 |
1刷 |
086
本文1行目 |
2刷 |
済 |
誤 |
$arrays[2] は$arrays の中に格納され「2」と名付けられた配列を表しています❷。 |
正 |
$arrays[1] は$arrays の中に格納され「1」と名付けられた配列を表しています❷。 |
|
2021.04.02 |
1刷 |
087
「HTML でテーブルを組む」のCODE「array_nijigen2.php」の続き 1行目 |
2刷 |
済 |
誤 |
<tr><td>鈴木</td><th>テニス</th><th>sample@sample.com</th></tr> |
正 |
<tr><td>鈴木</td><td>テニス</td><td>sample@sample.com</td></tr> |
|
2021.04.02 |
1刷 |
087
表 |
2刷 |
済 |
誤 |
|
正 |
|
|
2021.04.02 |
1刷 |
091
「コードを読んで流れを把握する」のCODE「checkbox_receive.php」下から4行目 |
2刷 |
済 |
誤 |
</ul>
<p>あなたの好きな色は<?php echo implode('と',$colors);?>です。</p>
</body>
</html> |
正 |
</ul>
</body>
</html>> |
|
2021.04.02 |
1刷 |
096
テーブルの図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.04.02 |
1刷 |
097
表「データ型の種類」の下の段落2行目 |
2刷 |
済 |
誤 |
varcharはPHPのstringに近い意味があります。 |
正 |
VARCHARはPHPのstringに近い意味があります。
・98ページ見出しの下 男性の吹き出し内の「varchar 」も「VARCHAR」に修正 |
|
2021.04.02 |
1刷 |
097
2つ目の表、「インデックス」の説明1行目 |
2刷 |
済 |
|
2018.06.13 |
1刷 |
098
1つ目の図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.04.02 |
1刷 |
099
「SQL 文の構造を確認する」に掲載している3つのコード |
2刷 |
済 |
誤 |
INSERT INTO `sample`.`user` (`id`, `name`, `age`, `email`) VALUES (NULL, '鈴木太郎',
'26', ' sample1@sample1.com ');
INSERT INTO sample.user (id, name, age, email) VALUES (NULL, '鈴木太郎', '26',
'sample@sample.com');
INSERT INTO user (id, name, age, email) VALUES (NULL, '中村花子', '45', ' sample2@sample2.com '); |
正 |
INSERT INTO `sample`.`user` (`id`, `name`, `age`, `email`) VALUES (NULL, '鈴木太郎',
26, ' sample1@sample1.com ');
INSERT INTO sample.user (id, name, age, email) VALUES (NULL, '鈴木太郎', 26,
'sample@sample.com');
INSERT INTO user (id, name, age, email) VALUES (NULL, '中村花子', 45, ' sample2@sample2.com ');
※26、45の後ろのシングルクォーテーションを削除します。 |
|
2021.04.02 |
1刷 |
099
図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.04.27 |
1刷 |
100
図の下に掲載しているコード |
2刷 |
済 |
誤 |
INSERT INTO user (id, name, age, email) VALUES (NULL, '佐藤次郎', '67', ' sample3@sample3.com ');
INSERT INTO user (id, name, age, email) VALUES (NULL, '山本京子', '38', ' sample4@sample4.com '); |
正 |
INSERT INTO user (id, name, age, email) VALUES (NULL, '佐藤次郎', 67, 'sample3@sample3.com');
INSERT INTO user (id, name, age, email) VALUES (NULL, '山本京子', 38, 'sample4@sample4.com');
※67、38の後ろのシングルクォーテーションを削除します。 |
|
2021.04.02 |
1刷 |
102
CODE「sample.sql」3行目 |
2刷 |
済 |
誤 |
`user` varchar(50) NOT NULL, |
正 |
`name` varchar(50) NOT NULL, |
|
2021.04.05 |
1刷 |
103
CODE「sample.sql」の続き 1行目 |
2刷 |
済 |
誤 |
`age` INT(3) NOT NULL, |
正 |
`age` int(3) NOT NULL, |
|
2021.04.05 |
1刷 |
104
CODE「connect.php」の8~10行目 |
2刷 |
済 |
誤 |
$sql = "";
$stmt = $dbh->prepare($sql);
$stmt->execute();
|
正 |
削除 |
備
考 |
接続だけを確認する場合、以上3行は不要でした。エラーが出るので削除(またはコメントアウト)してお試しください。 |
|
2018.04.13 |
1刷 |
104
本文2行目 |
2刷 |
済 |
|
2018.05.14 |
1刷 |
105
「PHP とSQL でデータベースを操作する」本文1行目 |
2刷 |
済 |
誤 |
さて、$sql に先ほど学習したSQL文を格納して、PHPからデータベースの操作が可能なことを確認しましょう。 |
正 |
さて、$sql という変数をつくり、先ほど学習したSQL文を格納して、PHPからデータベースの操作が可能なことを確認しましょう。 |
|
2021.04.05 |
1刷 |
105
CODE「insert1.php」3行目 |
2刷 |
済 |
誤 |
sample5@sample5.com')"; |
正 |
sample5@sample5.com ')"; |
備
考 |
「.com 」の後ろの空白を削除します。 |
|
2021.04.05 |
1刷 |
105
「PHPとSQLでデータベースを操作する」本文下から3行目 |
2刷 |
済 |
誤 |
http://localhost/practice/7/connect.phpにアクセスすると |
正 |
http://localhost/practice/7/insert1.phpにアクセスすると |
|
2021.04.05 |
1刷 |
105
CODE「insert1.php」 |
3刷 |
済 |
誤 |
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO user (id, name, age, email) VALUES (NULL, '田中三郎', '28', '
sample5@sample5.com')"; |
正 |
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO user (id, name, age, email) VALUES (NULL, '田中三郎', '28', '
sample5@sample5.com')";
$stmt = $dbh->prepare($sql);
$stmt->execute(); |
備
考 |
最後の2行を追加します。 |
|
2023.06.20 |
1刷 |
106
CODE「insert2.php」10行目 |
2刷 |
済 |
誤 |
$sql = "INSERT INTO user (name, age) VALUE (:name, :age)"; |
正 |
$sql = "INSERT INTO user (name, age) VALUES (:name, :age)"; |
|
2021.04.05 |
1刷 |
107
CODE「insert2.php」の下の段落 下から3行目 |
2刷 |
済 |
|
2018.10.15 |
1刷 |
111
表「SELECTで使用するコード一覧」の「LIKE」の例 |
2刷 |
済 |
誤 |
WHERE カラム名 LIKE '% 文字列% |
正 |
WHERE カラム名 LIKE '% 文字列%' |
備
考 |
2つ目の「%」の後ろにシングルクォーテーションを追加します。 |
|
2021.04.05 |
1刷 |
112
「1.送信ページを作る」の図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大)
|
備
考 |
ボタン名を「確認する」→「検索する」に修正。 |
|
2021.04.05 |
1刷 |
113
本文 下から2行目 |
2刷 |
済 |
誤 |
7 章の5で作成したselect2.phpを修正してresearch_receive.phpを作りましょう。 |
正 |
7 章の5で作成したselect2.phpを修正してsearch_receive.php を作りましょう。 |
|
2021.04.05 |
1刷 |
113
「送信ページを作る」の2つ目の小見出し |
2刷 |
済 |
誤 |
現在の年を取得する |
正 |
データベースの接続、操作用のコードを用意する |
|
2018.05.14 |
1刷 |
114
「送信されたデータを取得する」のCODE |
2刷 |
済 |
|
2021.04.05 |
1刷 |
114
「プリペアドステートメント」の冒頭の文章3行 |
2刷 |
済 |
誤 |
|
正 |
次は「LIKE」を使ったSQL 文を追加していきましょう。「LIKE」を使えば「~を含む」という
ようなあいまい検索ができるようになります。次のコードのようになります。
※上記文章に差し替えます。 |
|
2021.04.05 |
1刷 |
114
「送信されたデータを取得する」のCODEのファイル名 |
2刷 |
済 |
誤 |
search_send.php |
正 |
search_receive.php |
|
2018.04.12 |
1刷 |
115
1つ目のCODE「search_receive.php」1~3行目 |
2刷 |
済 |
誤 |
<?php
$data = [];
try{
|
正 |
$password = '';
$data = [];
try{ |
|
2021.04.05 |
1刷 |
121
送信ページを作るの図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.03.24 |
1刷 |
126
CODE「pic_receive.php」下から7行目 |
2刷 |
済 |
誤 |
echo '<a href="./sample8-3_send.php">戻る</a>'; |
正 |
echo '<a href="pic_send.php">戻る</a>'; |
|
2021.04.05 |
1刷 |
128
CODE「pic_receive.php」の❸ |
2刷 |
済 |
|
2021.04.05 |
1刷 |
131
「club テーブルを作成する」本文下から3行目 |
2刷 |
済 |
誤 |
以下のように適当なデータを3~4件入れておいてください。 |
正 |
以下のように任意のデータを3~4件入れておいてください。 |
|
2021.04.05 |
1刷 |
132
図の上の段落 下から2行目 |
2刷 |
済 |
誤 |
その後、適当に会員ごとのクラブIDを2や3に変更しておいてください。 |
正 |
その後、会員ごとのクラブIDを2や3に変更しておいてください。 |
|
2021.04.05 |
1刷 |
134
「テーブルを使って出力する」本文1行目 |
2刷 |
済 |
誤 |
<table>タグを使って$dataの中身を出力するコードを追加しましょう。 |
正 |
<table>タグを使って$rowの中身を出力するコードを追加しましょう。 |
|
2021.04.05 |
1刷 |
134
CODE「member_profile.php」の❷ |
2刷 |
済 |
誤 |
検索フォームもmethodをPOSTに設定する |
正 |
検索フォームもmethodをGETに設定する |
|
2021.04.05 |
1刷 |
135
「存在しないID に対する処理を組む」本文下から3行目 |
2刷 |
済 |
誤 |
「else:」「endif;」という記述ができます❷。
|
正 |
「else:」「endif;」という記述ができます❷❸。
|
|
2021.04.05 |
1刷 |
138
ATTENTIONの下から2行目 |
2刷 |
済 |
|
2020.08.21 |
1刷 |
138
COLUMN内の図 「一時的なフォルダ」の下の文章 |
2刷 |
済 |
誤 |
通常は「xampp¥tmp」
画像データは
プログラム終了時に解除 |
正 |
通常は「xampp¥tmp」
画像データは
プログラム終了時に削除 |
|
2021.04.05 |
1刷 |
138
COLUMN 下から4行目 |
2刷 |
済 |
誤 |
XAMMPではフォームからの送信時に |
正 |
Xamppではフォームからの送信時に |
|
2021.04.05 |
1刷 |
144
表「繰り返しを表現する構文」の「*」の例 |
2刷 |
済 |
誤 |
「pl」 |
正 |
「pol」 |
備
考 |
アスタリスクは0文字以上の任意の文字のため |
|
2019.02.21 |
1刷 |
146
練習 ①、②のCODEの見出し |
2刷 |
済 |
誤 |
practice8-1.php
practice8-2.php
|
正 |
practice9-1.php
practice9-2.php
②の問題文の「practice8-2.php」も「practice9-2.php」に訂正します。 |
|
2020.08.21 |
1刷 |
148
CODE「phone_number.php」の続き 下から2行目の引出線による説明 |
2刷 |
済 |
誤 |
var_dump($result2); ❶この書き方には対応させていない |
正 |
var_dump($result3); ❷この書き方には対応させていない
引出線の位置をコードの最下行に修正。
また❶を❷に修正します。 |
|
2021.04.05 |
1刷 |
155
CODE「violation.php」下から6~2行目 |
2刷 |
済 |
誤 |
if($flag > 0){
echo '禁止ワードは含まれています。';
}else{
echo '問題のない文字列です。';
} |
正 |
if($flag === 0){
echo '禁止ワードは含まれていません。';
}else{
echo '禁止ワードが含まれています。';
} |
|
2021.04.12 |
1刷 |
158
COLUMN 下から4行目 |
2刷 |
済 |
誤 |
真偽値である「TRUE」や「1FALSE」が返ってきたりすることもあります。 |
正 |
真偽値である「TRUE」や「FALSE」が返ってきたりすることもあります。 |
備
考 |
2021.4.12更新 |
|
2018.04.17 |
1刷 |
160
2つ目のCODE「php.ini」3行目 |
2刷 |
済 |
誤 |
sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe" |
正 |
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" |
備
考 |
「-t」はToやCcなどヘッダーに含まれる相手すべてに送信するという意味があります。メール送信の命令に対してこちらのexeファイルが実行されることになります。 |
|
2020.08.21 |
1刷 |
160
本文下から3行目 |
2刷 |
済 |
誤 |
パスに「"C:\xampp\mailtodisk\mailtodisk.exe"」を設定します。 |
正 |
パスに「"\"C:\xampp\sendmail\sendmail.exe\" -t"」を設定します。 |
|
2020.08.21 |
1刷 |
161
MEMO内のCODE「php.ini」 |
2刷 |
済 |
誤 |
;sendmail_path = "¥"C:¥xampp¥mailtodisk¥mailtodisk.exe" |
正 |
;sendmail_path = "C:¥xampp¥mailtodisk¥mailtodisk.exe" |
|
2021.04.12 |
1刷 |
162
本文5行目 |
2刷 |
済 |
誤 |
|
正 |
送信を試す場合は、送信先はご自身の実アドレスを使用してください。以降もメール送信を含むコードにおける送信先は全て実アドレスに置き換える必要があります。
上記文章を追加します。 |
|
2021.04.12 |
1刷 |
175
CODE「contact.php」上から5行目と下から5行目 |
2刷 |
済 |
誤 |
上から5行目:$inquery = $_POST['inquery'];
下から5行目:<p><textarea name="inquery"></textarea></p> |
正 |
上から5行目:$inquery = $_POST['inquiry'];
下から5行目:<p><textarea name="inquiry"></textarea></p>
※inqueryをinquiryに修正します。 |
備
考 |
以下の箇所に掲載しているCODE「contact.php」内の「inquery」も「inquiry」に訂正します。
・176ページ 1つ目のCODE「contact.php」
1行目:$inquery = $_POST['inquery'];
・177ページ 上のCODE
3行目:$inquery =<<
6行目:{$inquery}
9行目:if(mb_send_mail($email, $subject, $inquery, $headers) === FALSE){
・178ページ 上のCODE
6行目:<p><textarea name="inquery"></textarea></p>
・179ページ
3行目:$inquery = $_POST['inquery'];
15行目:$inquery =<<
18行目:{$inquery}
21行目:if(mb_send_mail($email, $subject, $inquery, $headers) === FALSE){
・180ページのCODE
2行目:<p><textarea name="inquery"></textarea></p> |
|
2020.08.21 |
1刷 |
184
本文2行目 |
2刷 |
済 |
誤 |
html_escape がどんな役割かを記述する前に、独自関数を使おうとしているのですから。 |
正 |
html_escapeの定義がそれを使用するコードより後に記述されています。 |
|
2021.04.12 |
1刷 |
184
図の下の段落1~2行目 |
2刷 |
済 |
誤 |
これにより、人が理解できる言語から機会が理解できる言語へと変換されます。 |
正 |
これにより、人が理解できる言語から機械が理解できる言語へと変換されます。 |
|
2018.06.13 |
1刷 |
187
本文2行目 |
2刷 |
済 |
誤 |
以下のコードを書いてください。 |
正 |
以下のコードをご確認ください。 |
|
2021.04.12 |
1刷 |
187
本文 最下行 |
2刷 |
済 |
誤 |
helloMessage($word) により「太郎」という文字列が関数へ渡されます。 |
正 |
hello_message($word) により「太郎」という文字列が関数へ渡されます。 |
|
2021.04.12 |
1刷 |
190
CODE「functions.php」1行目 |
3刷 |
済 |
誤 |
function get_db_Connect() { |
正 |
functions get_db_connect() { |
|
2023.06.20 |
1刷 |
193
CODE「board.php」2行目 |
2刷 |
済 |
誤 |
require_once('./functions.php'); |
正 |
require_once('functions.php');
以下に掲載しているのCODE「board.php」内の同コードも同じく修正します。
・194ページ
1つ目のコード1行目
・198ページ
2つ目のコード 2行目
|
|
2021.04.12 |
1刷 |
194
2つ目のCODE「board.php」1行目 |
2刷 |
済 |
誤 |
$dbh = getDbConnect(); |
正 |
$dbh = get_db_connect(); |
|
2018.11.06 |
1刷 |
195
CODE「view.php」の下から2行目 |
2刷 |
済 |
誤 |
<td><?php ech0 $row['created'];?></td> |
正 |
<td><?php echo $row['created'];?></td> |
備
考 |
「ech0」を「echo」に修正。 |
|
2018.10.12 |
1刷 |
196
コード下の段落3行目 |
2刷 |
済 |
誤 |
html_escape( ) を使用しましょう。 |
正 |
ただし、$row['created'] はフォームからの入力値ではなく、date( ) 関数で生成した値なのでエスケープの必要はありません。
「html_escape( ) を使用しましょう。」の後ろに上記文章を追加します。 |
|
2021.04.12 |
1刷 |
196
「MEMO」3行目 |
3刷 |
済 |
誤 |
改行コードがに変換されます。 |
正 |
改行タグに変換されます。 |
|
2023.06.20 |
1刷 |
198
1つ目のコード 下から9行目 |
2刷 |
済 |
誤 |
function select_comments($dbh) {
$sql = "SELECT name, comment, created FROM board"; |
正 |
function select_comments($dbh) {
$data = [];
$sql = "SELECT name, comment, created FROM board"; |
|
2021.04.12 |
1刷 |
199
CODE「view.php」10行目 |
2刷 |
済 |
誤 |
<td><?php echo html_escape($row['created']);?></td> |
正 |
<td><?php echo $row['created'];?></td> |
|
2021.04.12 |
1刷 |
203
CODE「cookie_check.php」の下の段落1~2行目 |
2刷 |
済 |
誤 |
クッキーデータは以下のように表示されるはずです。 |
正 |
クッキーデータは以下のように表示されるはずです(環境により、表示される文字が異なる場合があります)。 |
|
2021.04.14 |
1刷 |
205
CODE「session_set.php」4~5行目 |
2刷 |
済 |
誤 |
$_ SESSION ['cart']['desk_01'] = 3;
$_ SESSION ['cart']['chair_07'] = 5; |
正 |
$_SESSION['cart']['desk_01'] = 3;
$_SESSION['cart']['chair_07'] = 5;
※ $_とSESSIONの間、およびSESSIONと['cart']の間のスペースを削除します。 |
備
考 |
2021.04.14更新 |
|
2018.04.25 |
1刷 |
207
図「結果:アクセス後デベロッパーツールより表示」 |
2刷 |
済 |
誤 |
(画像クリックで拡大)
|
正 |
(画像クリックで拡大)
|
|
2021.04.14 |
1刷 |
207
CODE「session_check.php」2~3行目 |
2刷 |
済 |
誤 |
$profile = $_SESSION ['profile'];
$cart = $_SESSION ['cart']; |
正 |
$profile = $_SESSION['profile'];
$cart = $_SESSION['cart'];
|
備
考 |
$_SESSIONの後ろのスペースをそれぞれ削除します。
208ページ
「上書きと削除」に掲載しているコードの上から2~3行目の
$_SESSIONの後ろのスペースも同様に削除します。 |
|
2021.04.14 |
1刷 |
208
CODE「session_delete.php」下から5行目 |
2刷 |
済 |
誤 |
if (isset($_COOKIE[$session_name]) === TRUE) { |
正 |
if (isset($_COOKIE[$session_name])){ |
備
考 |
スペースと「=== TRUE」を削除します。
以下のコードも同様に修正します。
・211ページ
CODE「shop.php」の❹の注釈がついているコード
・212ページ
上のコード1行目
・215ページ
CODE「delete.php」5行目
・216ページ
2箇所の「カートに追加済みか判定」の赤枠内の各1行目
・241ページ
CODE「logout.php」下から5行目
|
|
2021.04.14 |
1刷 |
210
見出し下の男性の吹き出し |
2刷 |
済 |
誤 |
Part2 の最終課題だね。 |
正 |
Chapter12 の最終課題だね。 |
|
2021.04.14 |
1刷 |
213
CODE「cart.php」下から9行目 |
2刷 |
済 |
誤 |
<?php for($i = 1; $i <10; $i++):?> |
正 |
<?php for($i = 1; $i < 10; $i++):?>
|
備
考 |
「<」と「10」の間にスペースを入れます。
以下のコードも同様に修正します。
・218ページ
「変更ボタンのフォーム」の赤枠内3行目 |
|
2021.04.14 |
1刷 |
226
CODE「signup.php」3~4行目 |
2刷 |
済 |
誤 |
require_once('./functions/db_helper.php');
require_once('./functions/extra_helper.php'); |
正 |
require_once('./helpers/db_helper.php');
require_once('./helpers/extra_helper.php');
以下も同様に訂正します。すべて上から3~4行目のコードです。
P.230 CODE「signup.php」
P.233 CODE「login.php」
P.236 CODE「login.php」
P.239 CODE「member.php」
P.242 CODE「member.php」 |
備
考 |
P.222の案内通りだとfunctionsではなくhelpersが正しいです。 |
|
2020.08.21 |
1刷 |
227
CODE「db_helper.php」2行目 |
2刷 |
済 |
誤 |
$sql = "SELECT COUNT(id) FROM members where email = :email"; |
正 |
$sql = "SELECT COUNT(id) FROM members WHERE email = :email"; |
|
2021.04.16 |
1刷 |
227
CODE「signup_view.php」 |
3刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
備
考 |
※コードは画像化しています |
|
2023.06.20 |
1刷 |
227
本文1行目 |
3刷 |
済 |
誤 |
デザインは極力排除してシンプルなHTML で構成しました。 |
正 |
デザインは極力排除してシンプルなHTML で構成しました。
$errs はPOST の場合にのみ変数が初期化されるので、echo の前にisset() で変数がセットされているか確認しています。 |
備
考 |
文章を追加します。 |
|
2023.06.20 |
1刷 |
227
CODE「signup_view.php」の下から5行目 |
2刷 |
済 |
誤 |
</table> |
正 |
削除 |
備
考 |
</table>は不要です。サンプルが正しいものとなります。
※同じ部分に3刷で修正が入りました。最新の正誤情報もご覧ください。 |
|
2018.06.14 |
1刷 |
228
CODE「db_helper.php」4行目 |
2刷 |
済 |
誤 |
$sql = "INSERT INTO members (name, email, password, created) VALUE (:name, |
正 |
$sql = "INSERT INTO members (name, email, password, created) VALUES (:name, |
|
2021.04.16 |
1刷 |
229
CODE「signup.php」下から1行目 |
2刷 |
済 |
誤 |
include_once('./views/signup_view.php'); |
正 |
include_once('views/signup_view.php');
※「./」を削除します。 |
備
考 |
以下のコードも同様に「./」を削除します。
・231ページ
コード1行目
・234ページ
1つ目のコード最下行
・236ページ
1つ目のコード最下行
・237ページ
コード最下行
・239ページ
CODE「member.php」の下から1行目
・240ページ
「自作関数を使用する」のCODE「member.php」最下行
・242ページ
CODE「member.php」最下行 |
|
2021.04.15 |
1刷 |
229
本文 最下行 |
2刷 |
済 |
誤 |
あえて間違えてバリデーションが効いているかも試してみるとよいです。 |
正 |
あえてメール欄にメールアドレスでないものを入力するなどしてバリデーションが効いているかも試してみるとよいです。 |
備
考 |
この2刷での修正によって、該当箇所は230ページに移動しました。 |
|
2021.04.16 |
1刷 |
229
図 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
|
2021.04.28 |
1刷 |
231
MEMOの「・会員のPCデータや活動状況を記録する」下から3行目 |
2刷 |
済 |
誤 |
ログイン認証を作っていくことが大事になります。 |
正 |
ログイン認証を作っていくことが大事です。 |
|
2021.04.16 |
1刷 |
234
CODE「login_view.php」9~13行目 |
2刷 |
済 |
誤 |
<form action="" method="POST">
<p>メールアドレス:<input type="text" name="email"> <?php echo
htmlEscape($errs['email']); ?></p>
<p>パスワード:<input type="password" name="password"> <?php echo
htmlEscape($errs['password']); ?></p>
|
正 |
<form action="login.php" method="POST">
<p>メールアドレス:<input type="text" name="email">
<?php echo html_escape($errs['email']); ?></p>
<p>パスワード:<input type="password" name="password">
<?php echo html_escape($errs['password']); ?></p> |
備
考 |
オブジェクトのメソッドはキャメルケース(htmlEscape)となるのが一般的ですが、この場合、関数なのでスネークケース(html_escape)となります。 |
|
2021.04.21 |
1刷 |
240
CODE「db_helper.php」2行目 |
2刷 |
済 |
誤 |
function select_members($dbh) {
$sql = "SELECT name FROM members"; |
正 |
function select_members($dbh) {
$data = [];
$sql = "SELECT name FROM members"; |
備
考 |
$data = [];を追加します。 |
|
2021.04.21 |
1刷 |
245
CODE「send_token.php」 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
備
考 |
注釈❷と❸を追加し、青枠部分の「./」を削除します。 |
|
2021.04.21 |
1刷 |
247
「バリデーションのエラー文にも配慮が必要」下から2行目 |
2刷 |
済 |
誤 |
例えば、Yahoo! Japan ではログイン認証をメールアドレスの確認、パスワードの確認と2 段階でチェックするようになりました。 |
正 |
上記文章を削除します。 |
|
2021.04.21 |
1刷 |
256
下から1つ目の見出し |
2刷 |
済 |
誤 |
http://wpdocs.osdn.jp/ プラグインの作成 |
正 |
https://wpdocs.osdn.jp/ プラグインの作成 |
|
2021.04.21 |
1刷 |
269
「ひとまず使ってみる」下から3行目 |
2刷 |
済 |
誤 |
本書の学習が終わっていれば、オンラインチューターでは、応用編からスタートできます。オブジェクト指向を扱っていますので、行き詰まったらご相談ください。 |
正 |
上記文章を削除します。 |
|
2021.04.21 |
1刷 |
275
「あどがき」3つ目の段落 1行目 |
2刷 |
済 |
誤 |
しかし、プログラミングの教育はまだ聡明期です。 |
正 |
しかし、プログラミングの教育はまだ黎明期です。 |
|
2021.04.21 |
1刷 |
280
奥付 クレジット部分 |
2刷 |
済 |
誤 |
|
正 |
イラスト くにともゆかり |
備
考 |
イラストレータの名前が抜けていました。お詫び申し上げます。 |
|
2018.02.27 |