10.07.2015 Views

Beginning Web Development With Perl : From Novice to ... - Nabo

Beginning Web Development With Perl : From Novice to ... - Nabo

Beginning Web Development With Perl : From Novice to ... - Nabo

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ContentsAbout the Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiiiAbout the Technical Reviewer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvAcknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xviiIntroduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixPART 1 ■ ■ ■ CGI <strong>Development</strong> with <strong>Perl</strong>■CHAPTER 1 The CGI Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3An Overview of CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3What You Need for This Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Hello World, CGI Style . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Function-Oriented Hello World. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Object-Oriented Hello World. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9A Closer Look at the CGI.pm Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11HTML Shortcuts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Dynamic Pages and Forms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Viewing Environment Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Carrying Values Between Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Interaction with the System. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Debugging and Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Verbose Output. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Syntax Check . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28The Carp Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Other Troubleshooting Tips. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Security Considerations with CGI Programs . . . . . . . . . . . . . . . . . . . . . . . . . 31File Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Taint Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32Strictness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Untrusted Data from Forms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Untrusted Data from Cookies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34v

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!