Errata
The errata list is a list of errors and their corrections that were found after the product was released.
The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.
Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted by | Date submitted |
---|---|---|---|---|
Printed | Page None Winestore |
This has already been documented in other reviews...but I still don't know how to fix the problem with the customhandler.inc file. |
Bryan O'Brien | Jun 13, 2009 |
Printed | Page none Winestore application Error in customHandler.inc |
I too was getting the fatal error coming from customHandler.inc, presumably due to using PHP 5.2. I have come up with a psuedo fix, although I wish I understood the real fix. By commenting out the backTrace() function declaration and the call to it on line 77 the initial application page error is gone. Also, you have to comment out the call to set_error_handler() in each of the display files. This is not an ideal solution, but my winestore app now works. I'm still researching ways to get this app to work with PHP5 but am unsuccessful so far. |
Anonymous | Dec 18, 2010 |
Printed | Page 7 Last paragraph on p. 7, continuing on p. 8. |
The description of "servers" could use a bit of clarification (for some audiences). The concept of |
Anonymous | |
Printed | Page 18 Middle of page, end of 3rd list item |
Grammatically incorrect phrase: "statements can be distribute code across multiple blocks of code." |
Anonymous | |
Printed | Page 41 6th paragraph, 1st edition |
Following the text 'It's also common for the else clause to execute a block of statements |
Anonymous | |
Printed | Page 49 middle of 1st paragraph |
Used "to" instead of "too" in "The effect is a bit to hard to understand... " |
Anonymous | |
Printed | Page 77 2nd paragraph |
The description of printf states that it will "truncate" floating point numbers. |
Anonymous | |
Printed | Page 81 paragraph 2 (paragraph numbers ignores code listings) |
Book says: "Both strcmp() and strncmp() take two strings as parameters, str1 and |
Anonymous | |
Printed | Page 81 2nd paragraph of section "Comparing Strings" |
"Both strcmp( ) and strncmp( ) take two strings as parameters, str1 and str2, |
Anonymous | |
Printed | Page 87 Last Paragraph |
All POSIX regex functions were deprecated over a year ago. |
Mike Hudson | Aug 23, 2010 |
Printed | Page 90 Sec. 3.3.1.4. Optional and repeating characters |
In 3.3.1.4. Optional and repeating characters: |
Anonymous | |
Printed | Page 92 end of page |
The string $phone is not completely verified, only the first four (or five) characters. This, of course, may have been the author's intention. |
Alex Edwards | Jun 01, 2009 |
Printed | Page 93 2nd piece of code |
The backslash doesn't have to be quoted, at least not with PHP 5.2. I find that ereg('^[a-zA-Z \]*$', 'The backslash \ character') works admirably. |
Alex Edwards | Jun 01, 2009 |
Printed | Page 98 4 lines from end |
Example gives: |
Anonymous | |
Printed | Page 119 __destruct function in example 4.6 |
The destructor uses $donation, but this only exists as a value for the constructor. Hence it |
Anonymous | |
Printed | Page 122 2nd code of Clonong in PHP5 |
Code row 4. |
Anonymous | |
Printed | Page 123 top of page |
I'm using PHP 5.2.0. |
Alex Edwards | Jun 05, 2009 |
Printed | Page 128 3rd para "This approach can be .... |
might "proving a way..." be changed to "providing a way..." |
Anonymous | |
Printed | Page 128 last paragraph |
"PHP allows access to any known ancestor class using a <i>class reference</i> operator ... We can rewrite the <i>Triangle</i> class to call the ancestor version of the <i>info()</i> functions directly: |
Alex Edwards | Jun 05, 2009 |
Printed | Page 129 Output of first example |
The Shape::info() function returns "Shape." The Polygon::info() function returns "Shape.Polygon." Since Triangle::info() returns Shape::info() plus Polygon::info() plus "Triange.", the comment before the print statment should say: |
Anonymous | |
Printed | Page 129 Output of first example |
The Shape::info() function returns "Shape." The Polygon::info() function returns "Shape.Polygon." Since Triangle::info() returns Shape::info() plus Polygon::info() plus "Triange.", the comment before the print statment should say: |
Anonymous | Jul 21, 2008 |
Printed | Page 131 catch statement in example in middle of page |
Missing double-quote at the end of the print statement. |
Anonymous | |
Printed | Page 134 chapter 5--after instalatiion attempting to run wine store. |
Not even the Index page will work. |
Anonymous | |
Printed | Page 158 GROUP BY statement in final example on page |
The GROUP BY statement ends with count(*)>2, but the example output on the next page includes |
Anonymous | |
Printed | Page 168 5th para, INSERT statement |
When running the INSERT statement: |
Anonymous | |
Printed | Page 169 grape_variety table |
The authors are seriously misinformed about grape varieties. "Cabernet Sauvignon" is one variety, "Cabernet Franc" is a different variety, "Sauvignon Blanc" is something else; "Pinot Noir" is a variety, "Pinot Gris" is a different variety, and "Pinot Blanc" is yet another variety. |
Melinda McBride | Feb 07, 2010 |
Printed | Page 176 last paragraph |
The last paragraph incorrectly refers to non-existant function "mysql_errorno()" rather than the correct "mysql_errno()". |
Anonymous | |
Printed | Page 176 last paragraph |
The last paragraph incorrectly refers to non-existant function "mysql_errorno()" rather than the correct "mysql_errno()". |
Anonymous | Jul 22, 2008 |
Printed | Page 184 apache code towards bottom of page |
Given Apache httpd.conf change does not match that given in Appendices A-C; it is missing "Satisfy |
Anonymous | |
Printed | Page 191 middle of page |
Erroneous use of curly quote in "The value of $_GET["regionName"] is then automatically... " |
Anonymous | |
Printed | Page 198 third paragraph |
It states that shellclean() and mysqlclean() are in db.inc. db.inc is shown on page |
Anonymous | |
Printed | Page 202 partial paragraph at top |
The example at the top of the page specifies a max length of 7 for the value, but the next line shows an 8-byte value. Either the example should be changed to a max length of 8, or else the returned string should be listed as '2001;ca'. |
Anonymous | |
Printed | Page 202 partial paragraph at top |
The example at the top of the page specifies a max length of 7 for the value, but the next line shows an 8-byte value. Either the example should be changed to a max length of 8, or else the returned string should be listed as '2001;ca'. |
Anonymous | Jul 23, 2008 |
Printed | Page 210 sample code at bottom of page |
I think a line is missing in the SELECT clause. It is selecting odate and idate (followed by a comma which will cause a SQL syntax error), but the print statements are expecting columns named "cust_id" and "order_id", in addition to idate and odate. |
Anonymous | |
Printed | Page 210 sample code at bottom of page |
I think a line is missing in the SELECT clause. It is selecting odate and idate (followed by a comma which will cause a SQL syntax error), but the print statements are expecting columns named "cust_id" and "order_id", in addition to idate and odate. |
Anonymous | Jul 23, 2008 |
Printed | Page 211 line above mysql_insert_id heading |
The last line of the example is missing a closing square bracket. It should read: |
Anonymous | Jul 23, 2008 |
Printed | Page 212 Last line |
reads: |
Anonymous | |
Printed | Page 223 first word |
The very first word on the page is misspelled. It says "sever" instead of "server". |
Anonymous | Jul 25, 2008 |
Printed | Page 240 Section "Preserving and removing blocks", 1st paragraph, 3rd and 5th sentence |
The documentation of the loadTemplatefile() function switches the meaning of the second |
Anonymous | |
Printed | Page 245 3rd and 4th function descriptions |
Both the blockExists() and BlockvariableExists() functions are declared here to return an array, but the description says that they return true or false. |
Anonymous | |
Printed | Page 245 3rd and 4th function descriptions |
Both the blockExists() and BlockvariableExists() functions are declared here to return an array, but the description says that they return true or false. |
Anonymous | Jul 25, 2008 |
Printed | Page 297 2nd paragraph, 4th line |
$_GET["year"] uses an opening double quote just before "year" instead of the standard double prime. |
Anonymous | |
Printed | Page 301 Step #2 near top of page |
I believe that |
Anonymous | |
Printed | Page 307 5th line from bottom |
"Netscape still use the name JavaScript" |
Anonymous | |
Printed | Page 362 2nd line from bottom |
$_COOKIE["PHPSESSID"] uses an opening double quote just before "PHPSESSID" instead of the standard double prime. |
Anonymous | |
Printed | Page 371 diagram at top of page |
The bottom arrow is labeled "201 OK". |
Anonymous | |
Printed | Page 429 Example 13-2, line 37 |
This might just be me, but I can't example.13-2.php to create a valid PDF file unless I change line |
Anonymous | |
Printed | Page 461 First code line in "Functions" section |
There should be a comma after $s. |
Anonymous | |
Printed | Page 486 1/4 and 3/4 down the page |
Of the three SELECT statements on the page, the first and third have the first "S" in "SELECT" bolded for no apparent |
Anonymous | |
Printed | Page 499 First full line |
It says, "In the previous chapter, we showed you how to insert data using three |
Anonymous | |
Printed | Page 509 First paragraph |
The book says that strcmp is case-sensitive. However, as the example in Table 15-2 |
Anonymous | |
Printed | Page 556-559, 565-567 calls to parseCurrentBlock() |
parseCurrentBlock() takes no arguments. This is correctly stated on page 246 but calls on the above pages include an argument. |
Anonymous | Nov 24, 2008 |
Printed | Page 580 Line 11 from bottom |
The line says, "Retrieve the oldest price", but it is actually retrieving the |
Anonymous | |
Printed | Page 600 Select statement in middle of page |
The query groups on wine_id, but sorts on date_added. There can be several records with the same |
Anonymous | |
Printed | Page 674 Point 4 command for "Starting MySQL" |
/usr/local/mysql/bin/safe_mysqld --user=mysql & |
Anonymous | |
Printed | Page 681 Point 8 command for "Installing PHP" |
% ./configure --with-apxs2=/usr/local/apache2/bin/apxs |
Anonymous | |
Printed | Page 709 Step 3 |
The unix command: |
Anonymous | |
Printed | Page 720 Line 4 from top |
"/" should be "./". |
Anonymous |