title besides title

 

Saturday, December 1, 2012

PHP : Web Basics - [8.1] Introduction


Web programming is probably why you're reading this book. It's why the first version of PHP was written and what continues to make it so popular today. With PHP, it's easy to write dynamic web programs that do almost anything. Other chapters cover various PHP capabilities, like graphics, regular expressions, database access, and file I/O. These capabilities are all part of web programming, but this chapter focuses on some web-specific concepts and organizational topics that will make your web programming stronger.

Section 8.2, Section 8.3, and Section 8.4 show how to set, read, and delete cookies. A cookie is a small text string that the server instructs the browser to send along with requests the browser makes. Normally, HTTP requests aren't "stateful"; each request can't be connected to a previous one. A cookie, however, can link different requests by the same user. This makes it easier to build features such as shopping carts or to keep track of a user's search history.

Section 8.5 shows how to redirect users to a different web page than the one they requested. Section 8.6 explains the session module, which lets you easily associate persistent data with a user as he moves through your site. Section 8.7 demonstrates how to store session information in a database, which increases the scalability and flexibility of your web site. Discovering the features of a user's browser is shown in Section 8.8. Section 8.9 shows the details of constructing a URL that includes a GET query string, including proper encoding of special characters and handling of HTML entities.

The next two Sections demonstrate how to use authentication, which lets you protect your web pages with passwords. PHP's special features for dealing with HTTP Basic authentication are explained in Section 8.10. Sometimes it's a better idea to roll your own authentication method using cookies, as shown in Section 8.11.

The three following Sections deal with output control. Section 8.12 shows how to force output to be sent to the browser. Section 8.13 explains the output buffering functions. Output buffers enable you to capture output that would otherwise be printed or delay output until an entire page is processed. Automatic compression of output is shown in Section 8.14.

Section 8.15 to Section 8.20 cover error handling topics, including controlling where errors are printed, writing custom functions to handle error processing, and adding debugging assistance information to your programs. Section 8.19 includes strategies for avoiding the common "headers already sent" error message, such as using the output buffering discussed in Section 8.13.

The next four Sections show how to interact with external variables: environment variables and PHP configuration settings. Section 8.21 and Section 8.22 discuss environment variables, while Section 8.23 and Section 8.24 discuss reading and changing PHP configuration settings. If Apache is your web server, you can use the techniques in Section 8.25 to communicate with other Apache modules from within your PHP programs.

Section 8.26 demonstrates a few methods for profiling and benchmarking your code. By finding where your programs spend most of their time, you can focus your development efforts on improving the code that has the most noticeable speed-up effect to your users.

This chapter also includes two programs that assist in web site maintenance. Program Section 8.27 validates user accounts by sending an email message with a customized link to each new user. If the user doesn't visit the link within a week of receiving the message, the account is deleted. Program Section 8.28 monitors requests in real time on a per-user basis and blocks requests from users that flood your site with traffic.