30 of 30 people found the following review helpful:
4.0 out of 5 stars
What's different about this book?, November 19, 2001
This review is from: CGI Programming with Perl (Paperback)
While there're a few boooks available on CGI/Perl, what's different in this book you'd ask. If we compare it with "CGI Programming 101" by Jaqueline, it's more advanced and excersices better programming style. Uses 'strict' pragma and -wT switches ALL THE TIME, which I liked a lot. The programs are also compatible in mod_perl enviroment, which prove the fluency of the authors in Perl and Web Programming. Unfortunately their those capabilities don't make them good writers. They don't spend enough time on some of the concepts they introduce. They sepend more time and space then requried on JavaScript(chapter 7), which is about 23 pages, and spend only 16 pages on Data Persistence (chapter 10). But in Data Persistence chapter they tried to cover Text files, all kinds of file lockings, temporary files, DB_File, MLDBM, SQL, DBI. Now you have a rough picture of how dEtAiLeD their topisc are. Here I'll try go over chapters with comments and will be suggesting alternatives for the topic wherever it's applicable
Chapter 1, 2 and 3 give some history of the WWW and CGI. Also provide a smaple CGI application for getting started. I think chapter 2, "Hypertext Transfer Protocol" was pretty informative, and I ejoyed it a lot.
Chapter 4, "Forms and CGI" go over some form anatomy and elementary ways of encoding and decoding form input, which you might find usefull.
Chapter 5 is entirely dedicated to CGI.pm and it's application. I still think CGI.pm's documentation available online (or with your Perl distribution) does way better job than this one chapter.
Chapter 6, "HTML Templates" gives some nice examples of HTML::Template and Embperl usage. They spend good space on these, but only about 3 pages to cover Mason. Of course, the chapter can't take you too far without the original documentations of those mentioned libraries which are available online.
Chapter 7, as I mentioned was dedicated to JavaScript and JS validation. I think they were not supposed to spend so much time on JavaScript. For this one, go get JavaScript Bible, 4th edition by Danny Goodman.
Chapter 8, Security covers the security guidelines already available online as W3C's security FAQ by L. Stein and John Stewart.
Chapter 9, "Sending Email" was probably my favorite. It covers 'sendmai', mailx and mail and procmail. Spends good 18 pages on the topic and shows an examile that uses Mail::Mailer
Chapter 11, Maintaining State, was really poor. There's nothing much to learn in that chapter. For more profesional session management examples, I suggest you "MySQL and Perl for the Web" by Paul DeBois and Apache::Session manual available online.
Chapter 12, "Searching the web" give some advanced examples of web searching. The example of Inverted Index Search using DB_File was my favorite.
Chapter 13, "Creating Graphics on the fly" give some examples of dynamic graphic generation using GD, Image::Magick and GD::Graph. I could give this chapter hmmm... 3 stars :)
Chapter 14, "Middleware and XML" was the one I just skipped over.
The last 3 chapters of the book are dedicated to debugging, coding with style and eficiency with mod_perl and FastCGI.
For debugging and style, I recommend "Programming perl 3rd edition".
Overall, i benefitted from the book a lot as it implies from my review. But still wanna save my 5 stars for the 3rd edition :)
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
29 of 32 people found the following review helpful:
1.0 out of 5 stars
Rush job and it shows, July 25, 2000
This review is from: CGI Programming with Perl (Paperback)
This book is full of typos, which is forgivable if the code examples don't have typos, but they do. For instance, in the code for upload.cgi on pg 99, the following declaration is made:
use constant UPLOAD_DIR => "/usr/local/apache/data/uploads";
Note this does NOT end with a slash. Later, though, a loop is initialized as follows:
until (sysopen OUTPUT, UPLOAD_DIR . $filename, O_CREAT | O_EXCL)
$filename is taken from user form input, but unless the user was omniscient and put a slash at the beginning of the name he assigned, then the expression "UPLOAD_DIR" . $filename would evaluate to something like:
/usr/local/apache/data/uploadsbleedin_file_name
instead of the correct: ".../uploads/bleedin_file_name". Oh, and speaking of putting a slash at the beginning of the file name....there is code that is supposed to prevent such, as evidenced by the line:
error($q, "Invalid file name; files must start with a letter or number.");
I don't know about slashes, but it didn't prevent me from sending a file name through that begin with a tilde.
Yes the book covers some things you won't find anywhere else, but a lot of the stuff it covers is better covered elsewhere: OReilly's "Webmaster in a NutShell" has better coverage of HTTP. It (Webmaster) also discusses using the use statement to reference a library in a path where you might have had to manually install it in your virtual hosting directory if for instance you couldn't convince your ISP to upgrade to the latest version of CGI.pm. This wasn't covered in the CGI book, which is supposed to be solely about CGI, whereas the Webmaster book not only covers CGI/Perl, but also JavaScript, PHP, etc.
Don't waste your money....I'm sorry I did
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
22 of 24 people found the following review helpful:
3.0 out of 5 stars
NOT a "quick and dirty" CGI reference..., August 21, 2000
This review is from: CGI Programming with Perl (Paperback)
You must be careful when usign this book. I found myself wasting a lot of time typing (oreilly's ftp site was down, and has been down lately--what can I say?) and implementing the examples in the book only to get to the end of the chapters to find out that the authors were holding out on me for a better solution. For example: Parsing forms? Don't implement anything on Chapter 4, "Decoding Form Input." Wait until the next chapter about CGI.pm. Searching the web server (Chapter 12)? Wait until the end of the chapter before implementing anything, or waste alot of time.
Don't get me wrong, this book has some decent information in it. And there is much learning to be done in reviewing how NOT to do certain things. However, I'm not sure how many people read CGI books from cover to cover.
Bottom line: the authors should have been more mindful of their audience's time constraints and should have tailored the exposition of material accordingly.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No