Companion Web Site to the Book Unfortunately, despite the best efforts of myself, the technical editor, the copy editor, and the line editor, despite the multiple revisions, errors still occur. This page lists all the errors found in the book. Note: errors are corrected in subsequent printings and therefore your particular copy may not contain all of the following. You may also find the solution to your problem by using the book's corresponding forum. Signficant changes in the technology will be addressed there and you can also find problems and solutions encountered by other readers. Known Errors in the Book: Chapter Page Description # Date Added 1: Introduction to PHP 6 The first word in the last paragraph February 18, in the sidebar should be "An" not 2008 "As". 1: Introduction to PHP 14 In the second bullet point, it should February 18, say that a variable's name can 2008 contain a combination of letters, numbers, and the underscore. 1: Introduction to PHP 28 In the code in Step 2, an apostrophe is missing. The code should be: define ('TODAY', 'August 28, 2007'); The code in the corresponding script is correct. January 26, 2008 1: Introduction to PHP 30 On line five, it should say ...examples used so far.... May 19, 2008 2: Programming with PHP 34 In the URL in the sidebar, there's an extraneous space between "script." and "php?". February 18, 2008 2: Programming with PHP 61 The last line of code in the righthand column should refer to May 19, 2008 "Primes" plural: {$numbers['Primes'][0]}. 2: Programming with PHP 65 The last paragraph of the sidebar February 18, should refer to the $s2 variable, not 2008 $string2. 3: Creating Dynamic Web Sites 85 In the paragraph under Step 2, the July 09, 2008 last sentence should start This variable will correlate.... 3: Creating Dynamic Web Sites 89 In the code at the end of the lefthand column, there's an extra closing parentheses after ($gender == 'F'). January 26, 2008 3: Creating Dynamic Web Sites 89 In the right-hand column, the second word of the second paragraph (not including the code) should be "here", not "hear". January 26, 2008 3: Creating Dynamic Web Sites 89 In the second block of example January 19, code in the right-hand column, the 2009 third line is missing a closing double quotation mark. It should be echo "<option value=\"$y\""; 3: Creating Dynamic Web Sites 98 The last paragraph before the April 15, 2008 numbered steps should say there's no way to pass $msg a value. 4: Introduction to MySQL 118 There should not be a space between the hyphen and the letter "u" in the first bullet. May 19, 2008 5: Introduction to SQL 137 The SQL command in the second tip should end with WHERE last_name LIKE '_smith%'. February 18, 2008 5: Introduction to SQL 146 The last sentence of the first paragraph should read ...MySQL functions in other types.... July 09, 2008 5: Introduction to SQL 147 In Table 5.2, the Usage value for the second item should begin as "CONCAT_WS(...". February 18, 2008 5: Introduction to SQL 147 In Table 5.2, the Returns value for the last item should say that the string indexing begins at 1, not 0. February 18, 2008 6: Advanced SQL and MySQL 172 In the third sentence in the rightOctober 25, hand paragraph, "troutocity" should 2008 be "trouster". 6: Advanced SQL and MySQL 179 The last sentence in Step 2 should February 18, say that "An outer join is used...". 2008 6: Advanced SQL and MySQL 179 The query in Step 2 should actually November 05, end GROUP BY (users.user_id). 2008 As written in the book, only one user without posts will be returned. The same change applies to Figure 6.24. 6: Advanced SQL and MySQL 182 In the second paragraph in the right-hand column, "doesn't not" should just be "does not". October 25, 2008 7: Error Handling and Debugging 207 The code in Step 1 omits the <h2>Testing Display Errors</h2> that is in the corresponding script. April 15, 2008 8: Using PHP with MySQL 224 In Script 8.1, the opening HEAD tag on line 3 erroneously has a quotation mark. July 09, 2008 8: Using PHP with MySQL 236 The first line of code in Step 9 should read mysqli_close($dbc);. The corresponding script is correct. April 15, 2008 8: Using PHP with MySQL 252 Line 18 of Script 8.7 should begin January 26, with $e = .... The corresponding 2008 code in Step 4 on page 253 is correct. 9: Common Programming Techniques 266 The header in Figure 9.3 should be May 19, 2008 "Delete a User". 9: Common Programming Techniques 275 The first line of code under Step 12 April 15, 2008 should refer to MYSQLI_NUM (all in uppercase). The corresponding script is correct. 9: Common Programming Techniques 281 On lines 9 and 10 of the first May 19, 2008 paragraph under step 6, it should say The second page would show records 10 through 19; the third, 20 through 29; and so forth. 10: Web Application Development 309 Line 24 of Script 10.3 inadvertently April 15, 2008 include 'image/jpeg' twice. This also applies to the code in Step 3 on page 310. 10: Web Application Development 311 The echo statement in Step 5 should just read echo '<p class="error">Please upload a JPEG or PNG image.</p>'; . The code in the corresponding script is correct. 10: Web Application 312 The MAX_FILE_SIZE hidden input October 25, in Script 10.3 on line 85 should end 2008 April 15, 2008 Development with a space and a backslash to be XHTML compliant. This also applies to the code in Step 10 on page 314. 10: Web Application Development 324 The second-to-last line of text should refer to the $name variable not the $name function. April 15, 2008 11: Cookies and Sessions 357 In the paragraph that begins Another change you..., the word "the" is repeated. April 15, 2008 11: Cookies and Sessions 359 Line 9 of Script 11.13 and the corresponding code in Step 5 needs one more closing parentheses. February 18, 2008 12: Security Methods 369 On the fourth line of the sidebar, "even form a database" should be "even from a database". October 25, 2008 12: Security Methods 383 In line 13 of the first paragraph, it should say "...view the data in its...". January 19, 2009 14: Making Universal Sites 437 In the sidebar, the three references October 25, to the set_locale() function should 2008 be setlocale(), without an underscore. The same goes for ucwords(), in the right-hand column. 16: Example--User Registration 491 Line 21 of Script 16.3 should end with a slash after www.example.com. 16: Example--User Registration 509 On line 13 of Script 16.7, and on January 26, line 8 of the code in Step 2, there's 2008 a closing parentheses missing. The July 09, 2008 correct line should be if (isset($_GET['y']) && (strlen($_GET['y']) == 32) ) { 16: Example--User Registration 510 Line 29 of Script 16.7 and the corresponding code in Step 4 on page 511 should not have the closing </font> tag. October 25, 2008 16: Example--User Registration 523 The last sentence in the explanation for Step 7 should say "email address" instead of "password" (twice). October 25, 2008 16: Example--User Registration 555 The code in step 5 is actually a repetition of the last two lines of code in step 4. May 19, 2008 Click here to view the errata in the order they were submitted. Click here to view the most recent errors first. Click here to view the errata by page number.