did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780672326721

PHP and MySQL Web Development

by ;
  • ISBN13:

    9780672326721

  • ISBN10:

    0672326728

  • Edition: 3rd
  • Format: Paperback w/CD
  • Copyright: 2005-01-01
  • Publisher: Sams
  • View Upgraded Edition
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99

Summary

bull; A new, updated, and revised edition of the best-selling #1 book on any open source programming topic. bull; New edition updates the material and code to MySQL 5 and PHP 5, and includes new coverage of PHP's object model and validation. bull; Readers have consistently praised the book's clear, practical approach - some have even called it the best technical book they've ever read.

Table of Contents

Introduction 1(10)
I Using PHP
PHP Crash Course
11(46)
Using PHP
12(1)
Creating a Sample Application: Bob's Auto Parts
12(3)
Creating the Order Form
12(2)
Processing the Form
14(1)
Embedding PHP in HTML
15(4)
Use of PHP Tags
16(1)
PHP Tag Styles
16(1)
PHP Statements
17(1)
Whitespace
18(1)
Comments
18(1)
Adding Dynamic Content
19(2)
Calling Functions
20(1)
Using the date () Function
20(1)
Accessing Form Variables
21(5)
Form Variables
21(3)
String Concatenation
24(1)
Variables and Literals
25(1)
Understanding Identifiers
26(1)
Creating User-Declared Variables
26(1)
Assigning Values to Variables
26(1)
Examining Variable Types
27(2)
PHP's Data Types
27(1)
Type Strength
27(1)
Type Casting
28(1)
Variable Variables
28(1)
Declaring and Using Constants
29(1)
Understanding Variable Scope
29(1)
Using Operators
30(9)
Arithmetic Operators
31(1)
String Operators
32(1)
Assignment Operators
32(2)
Comparison Operators
34(2)
Logical Operators
36(1)
Bitwise Operators
36(1)
Other Operators
37(2)
Using Operators: Working Out the Form Totals
39(1)
Understanding Precedence and Associativity: Evaluating Expressions
40(2)
Using Variable Functions
42(2)
Testing and Setting Variable Types
42(1)
Testing Variable Status
43(1)
Reinterpreting Variables
44(1)
Implementing Control Structures
44(1)
Making Decisions with Conditionals
44(5)
if Statements
44(1)
Code Blocks
45(1)
else Statements
45(1)
elseif Statements
46(1)
switch Statements
47(2)
Comparing the Different Conditionals
49(1)
Repeating Actions Through Iteration
49(5)
while Loops
51(1)
for and foreach Loops
52(1)
do.. while Loops
53(1)
Breaking Out of a Control Structure or Script
54(1)
Employing Alternative Control Structure Syntax
54(1)
Using declare
55(1)
Next: Saving the Customer's Order
55(2)
Storing and Retrieving Data
57(22)
Saving Data for Later
57(1)
Storing and Retrieving Bob's Orders
58(1)
Processing Files
59(1)
Opening a File
59(6)
Choosing File Modes
59(1)
Using fopen () to Open a File
60(2)
Opening Files Through FTP or HTTP
62(1)
Addressing Problems Opening Files
63(2)
Writing to a File
65(2)
Parameters for fwrite ()
66(1)
File Formats
66(1)
Closing a File
67(2)
Reading from a File
69(5)
Opening a File for Reading: fopen ()
70(1)
Knowing When to Stop: feof ()
71(1)
Reading a Line at a Time: fgets (), fgetss (), and fgetcsv ()
71(1)
Reading the Whole File: readfile (), fpassthru (), and file ()
72(1)
Reading a Character: fgetc ()
73(1)
Reading an Arbitrary Length: fread ()
73(1)
Using Other Useful File Functions
74(2)
Checking Whether a File Is There: file_exists ()
74(1)
Determining How Big a File Is: filesize ()
74(1)
Deleting a File: unlink ()
74(1)
Navigating Inside a File: rewind (), fseek (), and ftell ()
74(2)
Locking Files
76(1)
Doing It a Better Way: Database Management Systems
77(1)
Problems with Using Flat Files
77(1)
How RDBMSs Solve These Problems
78(1)
Further Reading
78(1)
Next
78(1)
Using Arrays
79(26)
What Is an Array?
79(1)
Numerically Indexed Arrays
80(3)
Initializing Numerically Indexed Arrays
80(1)
Accessing Array Contents
81(1)
Using Loops to Access the Array
82(1)
Arrays with Different Indices
83(2)
Initializing an Array
83(1)
Accessing the Array Elements
83(1)
Using Loops
83(2)
Array Operators
85(1)
Multidimensional Arrays
86(4)
Sorting Arrays
90(1)
Using sort ()
90(1)
Using asort () and ksort () to Sort Arrays
91(1)
Sorting in Reverse
91(1)
Sorting Multidimensional Arrays
91(3)
User-Defined Sorts
91(2)
Reverse User Sorts
93(1)
Reordering Arrays
94(2)
Using shuffle ()
94(2)
Using array_reverse ()
96(1)
Loading Arrays from Files
96(4)
Performing Other Array Manipulations
100(4)
Navigating Within an Array: each (), current (), reset (), end (), next (), pos (), and prev ()
100(1)
Applying Any Function to Each Elements in an Array: array_walk ()
101(1)
Counting Elements in an Array: count (), sizeof (), and array_count_values ()
102(1)
Converting Arrays to Scalar Variables: extract ()
103(1)
Further Reading
104(1)
Next
104(1)
String Manipulation and Regular Expressions
105(24)
Creating a Sample Application: Smart Form Mail
105(2)
Formatting Strings
107(6)
Trimming Strings: chop (), ltrim (), and trim ()
108(1)
Formatting Strings for Presentation
108(4)
Formatting Strings for Storage: addslashes () and stripslashes ()
112(1)
Joining and Splitting Strings with String Functions
113(3)
Using explode (), implode (), and join ()
114(1)
Using strtok ()
114(1)
Using substr ()
115(1)
Comparing Strings
116(1)
Performing String Ordering: strcmp (), strcasecmp (), and strnatcmp ()
116(1)
Testing String Length with strlen ()
117(1)
Matching and Replacing Substrings with String Functions
117(4)
Finding Strings in Strings: strstr (), strchr (), strrchr (), and stristr ()
118(1)
Finding the Position of a Substring: strpos () and strrpos ()
118(1)
Replacing Substrings: str_replace () and substr_replace ()
119(2)
Introducing Regular Expressions
121(5)
The Basics
121(1)
Character Sets and Classes
121(2)
Repetition
123(1)
Subexpressions
123(1)
Counted Subexpressions
123(1)
Anchoring to the Beginning or End of a String
123(1)
Branching
124(1)
Matching Literal Special Characters
124(1)
Reviewing the Special Characters
124(1)
Putting It All Together for the Smart Form
125(1)
Finding Substrings with Regular Expressions
126(1)
Replacing Substrings with Regular Expressions
127(1)
Splitting Strings with Regular Expressions
127(1)
Comparing String Functions and Regular Expression Functions
127(1)
Further Reading
128(1)
Next
128(1)
Reusing Code and Writing Functions
129(28)
Reusing Code
129(1)
Cost
130(1)
Reliability
130(1)
Consistency
130(1)
Using require () and include ()
130(3)
require ()
131(1)
Filename Extensions and require ()
132(1)
PHP Tags and require ()
132(1)
Using require () for Website Templates
133(6)
Using include ()
138(1)
Using require_once () and include_once ()
138(1)
Using auto_prepend_file and auto_append_file
138(1)
Using Functions in PHP
139(3)
Calling Functions
139(2)
Calling an Undefined Function
141(1)
Understanding Case and Function Names
142(1)
Understanding Why You Should Define Your Own Functions
142(1)
Examining Basic Function Structure
142(2)
Naming Your Function
143(1)
Using Parameters
144(2)
Understanding Scope
146(3)
Passing by Reference Versus Passing by Value
149(1)
Returning from Functions
150(1)
Returning Values from Functions
151(2)
Code Blocks
152(1)
Implementing Recursion
153(2)
Further Reading
155(1)
Next
155(2)
Object-Oriented PHP
157(34)
Understanding Object-Oriented Concepts
158(2)
Classes and Objects
158(1)
Polymorphism
159(1)
Inheritance
160(1)
Creating Classes, Attributes, and Operations in PHP
160(2)
Structure of a Class
160(1)
Constructors
161(1)
Destructors
161(1)
Instantiating Classes
162(1)
Using Class Attributes
162(2)
Controlling Access with private and public
164(1)
Calling Class Operations
165(1)
Implementing Inheritance in PHP
166(6)
Controlling Visibility Through Inheritance with private and protected
167(1)
Overriding
168(2)
Preventing Inheritance and Overriding with final
170(1)
Understanding Multiple Inheritance
171(1)
Implementing Interfaces
171(1)
Designing Classes
172(1)
Writing the Code for Your Class
173(8)
Understanding Advanced and New Object-Oriented Functionality in PHP
181(9)
Note: PHP4 Versus PHP5
182(1)
Using Per-Class Constants
182(1)
Implementing Static Methods
182(1)
Checking Class Type and Type Hinting
183(1)
Cloning Objects
184(1)
Using Abstract Classes
184(1)
Overloading Methods with__call ()
184(1)
Using__autoload ()
185(1)
Implementing Iterators and Iteration
186(2)
Converting Your Classes to Strings
188(1)
Using the Reflection API
188(2)
Next
190(1)
Exception Handling
191(14)
Exception Handling Concepts
191(2)
The Exception Class
193(1)
User-Defined Exceptions
194(3)
Exceptions in Bob's Auto Parts
197(3)
Exceptions and PHP's Other Error Handling Mechanisms
200(1)
Further Reading
201(1)
Next
201(4)
II Using MySQL
Designing Your Web Database
205(12)
Relational Database Concepts
206(3)
Tables
206(1)
Columns
207(1)
Rows
207(1)
Values
207(1)
Keys
207(1)
Schemas
208(1)
Relationships
209(1)
How to Design Your Web Database
209(5)
Think About the Real-World Objects You Are Modeling
209(1)
Avoid Storing Redundant Data
210(2)
Use Atomic Column Values
212(1)
Choose Sensible Keys
213(1)
Think About the Questions You Want to Ask the Database
213(1)
Avoid Designs with Many Empty Attributes
213(1)
Summary of Table Types
214(1)
Web Database Architecture
214(2)
Architecture
214(2)
Further Reading
216(1)
Next
216(1)
Creating Your Web Database
217(24)
Using the MySQL Monitor
218(1)
Logging In to MySQL
219(1)
Creating Databases and Users
220(1)
Creating the Database
220(1)
Setting Up Users and Privileges
221(1)
Introducing MySQL's Privilege System
221(5)
Principle of Least Privilege
221(1)
User Setup: The GRANT Command
221(2)
Types and Levels of Privileges
223(2)
The REVOKE Command
225(1)
Examples Using GRANT and REVOKE
225(1)
Setting Up a User for the Web
226(1)
Logging Out as root
227(1)
Using the Right Database
227(1)
Creating Database Tables
227(6)
Understanding What the Other Keywords Mean
229(1)
Understanding the Column Types
230(1)
Looking at the Database with Show and Describe
231(1)
Creating Indexes
232(1)
A Note on Table Types
233(1)
Understanding MySQL Identifiers
233(1)
Choosing Column Data Types
234(5)
Numeric Types
235(4)
Further Reading
239(1)
Next
239(2)
Working with Your MySQL Database
241(24)
What Is SQL?
241(1)
Inserting Data into the Database
242(2)
Retrieving Data from the Database
244(15)
Retrieving Data with Specific Criteria
246(1)
Retrieving Data from Multiple Tables
247(6)
Retrieving Data in a Particular Order
253(1)
Grouping and Aggregating Data
254(2)
Choosing Which Rows to Return
256(1)
Using Subqueries
256(3)
Updating Records in the Database
259(1)
Altering Tables After Creation
259(3)
Deleting Records from the Database
262(1)
Dropping Tables
262(1)
Dropping a Whole Database
262(1)
Further Reading
263(1)
Next
263(2)
Accessing Your MySQL Database from the Web with PHP
265(20)
How Web Database Architectures Work
266(3)
Querying a Database from the Web
269(1)
Checking and Filtering Input Data
270(1)
Setting Up a Connection
271(1)
Choosing a Database to Use
272(1)
Querying the Database
272(1)
Retrieving the Query Results
273(1)
Disconnecting from the Database
274(1)
Putting New Information in the Database
275(3)
Using Prepared Statements
278(2)
Using Other PHP-Database Interfaces
280(1)
Using a Generic Database Interface: PEAR DB
280(3)
Further Reading
283(1)
Next
283(2)
Advanced MySQL Administration
285(22)
Understanding the Privilege System in Detail
285(6)
The user Table
286(2)
The db and host Tables
288(1)
The tables_priv and columns_priv Tables
289(1)
Access Control: How MySQL Uses the Grant Tables
290(1)
Updating Privileges: When Do Changes Take Effect?
290(1)
Making Your MySQL Database Secure
291(2)
MySQL from the Operating System's Point of View
291(1)
Passwords
291(1)
User Privileges
292(1)
Web Issues
293(1)
Getting More Information About Databases
293(8)
Getting Information with SHOW
293(3)
Getting Information About Columns with Describe
296(1)
Understanding How Queries Work with EXPLAIN
296(5)
Speeding Up Queries with Indexes
301(1)
Optimizing Your Database
301(1)
Design Optimization
301(1)
Permissions
301(1)
Table Optimization
301(1)
Using Indexes
302(1)
Using Default Values
302(1)
Other Tips
302(1)
Backing Up Your MySQL Database
302(1)
Restoring Your MySQL Database
303(1)
Implementing Replication
303(3)
Setting Up the Master
304(1)
Performing the Initial Data Transfer
304(1)
Setting Up the Slave or Slaves
305(1)
Further Reading
306(1)
Next
306(1)
Advanced MySQL Programming
307(16)
The LOAD DATA INFILE Statement
307(1)
Storage Engines
308(1)
Transactions
309(2)
Understanding Transaction Definitions
309(1)
Using Transactions with InnoDB
310(1)
Foreign Keys
311(1)
Stored Procedures
312(7)
Basic Example
312(3)
Local Variables
315(1)
Cursors and Control Structures
315(4)
Further Reading
319(1)
Next
319(4)
III E-commerce and Security
Running an E-commerce Site
323(14)
Deciding What You Want to Achieve
323(1)
Considering the Types of Commercial Websites
323(9)
Publishing Information Using Online Brochures
324(3)
Taking Orders for Goods or Services
327(3)
Providing Services and Digital Goods
330(1)
Adding Value to Goods or Services
331(1)
Cutting Costs
331(1)
Understanding Risks and Threats
332(3)
Crackers
333(1)
Failure to Attract Sufficient Business
333(1)
Computer Hardware Failure
333(1)
Power, Communication, Network, or Shipping Failures
334(1)
Extensive Competition
334(1)
Software Errors
334(1)
Evolving Governmental Policies and Taxes
335(1)
System Capacity Limits
335(1)
Deciding on a Strategy
335(1)
Next
335(2)
E-commerce Security Issues
337(20)
How Important Is Your Information?
338(1)
Security Threats
338(7)
Exposure of Confidential Data
339(1)
Loss or Destruction of Data
340(1)
Modification of Data
341(1)
Denial of Service
342(1)
Errors in Software
343(1)
Repudiation
344(1)
Usability, Performance, Cost, and Security
345(1)
Security Policy Creation
345(1)
Authentication Principles
346(1)
Authentication
347(1)
Encryption Basics
347(2)
Private Key Encryption
349(1)
Public Key Encryption
349(1)
Digital Signatures
350(1)
Digital Certificates
351(1)
Secure Web Servers
352(1)
Auditing and Logging
353(1)
Firewalls
353(1)
Data Backups
354(1)
Backing Up General Files
354(1)
Backing Up and Restoring Your MySQL Database
354(1)
Physical Security
355(1)
Next
355(2)
Implementing Authentication with PHP and MySQL
357(22)
Identifying Visitors
357(1)
Implementing Access Control
358(8)
Storing Passwords
361(3)
Encrypting Passwords
364(1)
Protecting Multiple Pages
365(1)
Using Basic Authentication
366(1)
Using Basic Authentication in PHP
367(2)
Using Basic Authentication with Apache's .htaccess Files
369(4)
Using Basic Authentication with IIS
373(2)
Using mod_auth_mysql Authentication
375(2)
Installing mod_auth_mysql
375(1)
Did It Work?
376(1)
Using mod_auth_mysql
376(1)
Creating Your Own Custom Authentication
377(1)
Further Reading
378(1)
Next
378(1)
Implementing Secure Transactions with PHP and MySQL
379(22)
Providing Secure Transactions
379(4)
The User's Machine
380(1)
The Internet
381(1)
Your System
382(1)
Using Secure Sockets Layer (SSL)
383(4)
Screening User Input
387(1)
Providing Secure Storage
387(2)
Determining Whether to Store Credit Card Numbers
389(1)
Using Encryption in PHP
389(8)
Further Reading
397(1)
Next
398(3)
IV Advanced PHP Techniques
Interacting with the File System and the Server
401(18)
Uploading Files
401(7)
HTML for File Upload
402(1)
A Note on Security
403(1)
Writing the PHP to Deal with the File
403(4)
Common Problems
407(1)
Using Directory Functions
408(3)
Reading from Directories
408(2)
Getting Information About the Current Directory
410(1)
Creating and Deleting Directories
410(1)
Interacting with the File System
411(4)
Getting File Information
411(3)
Changing File Properties
414(1)
Creating, Deleting, and Moving Files
414(1)
Using Program Execution Functions
415(2)
Interacting with the Environment: getenv () and putenv ()
417(1)
Further Reading
418(1)
Next
418(1)
Using Network and Protocol Functions
419(20)
Examining Available Protocols
419(1)
Sending and Reading Email
420(1)
Using Other Websites
420(4)
Using Network Lookup Functions
424(4)
Using FTP
428(9)
Using FTP to Back Up or Mirror a File
428(7)
Uploading Files
435(1)
Avoiding Timeouts
435(1)
Using Other FTP Functions
436(1)
Further Reading
437(1)
Next
437(2)
Managing the Date and Time
439(12)
Getting the Date and Time from PHP
439(5)
Using the date () Function
439(2)
Dealing with Unix Timestamps
441(1)
Using the getdate () Function
442(1)
Validating Dates
443(1)
Converting Between PHP and MySQL Date Formats
444(1)
Calculating Dates in PHP
445(1)
Calculating Dates in MySQL
446(2)
Using Microseconds
448(1)
Using the Calendar Functions
448(1)
Further Reading
449(1)
Next
449(2)
Generating Images
451(28)
Setting Up Image Support in PHP
452(1)
Understanding Image Formats
452(2)
JPEG
452(1)
PNG
453(1)
WBMP
453(1)
GIF
453(1)
Creating Images
454(5)
Creating a Canvas Image
455(1)
Drawing or Printing Text on the Image
456(2)
Outputting the Final Graphic
458(1)
Cleaning Up
459(1)
Using Automatically Generated Images in Other Pages
459(1)
Using Text and Fonts to Create Images
460(8)
Setting Up the Base Canvas
463(1)
Fitting the Text onto the Button
464(3)
Positioning the Text
467(1)
Writing the Text onto the Button
467(1)
Finishing Up
468(1)
Drawing Figures and Graphing Data
468(8)
Using Other Image Functions
476(1)
Further Reading
477(1)
Next
477(2)
Using Session Control in PHP
479(16)
What Session Control Is
479(1)
Understanding Basic Session Functionality
479(3)
What Is a Cookie?
480(1)
Setting Cookies from PHP
480(1)
Using Cookies with Sessions
481(1)
Storing the Session ID
481(1)
Implementing Simple Sessions
482(2)
Starting a Session
482(1)
Registering Session Variables
482(1)
Using Session Variables
483(1)
Unsetting Variables and Destroying the Session
483(1)
Creating a Simple Session Example
484(2)
Configuring Session Control
486(1)
Implementing Authentication with Session Control
487(6)
Further Reading
493(1)
Next
494(1)
Other Useful Features
495(12)
Using Magic Quotes
495(1)
Evaluating Strings: eval ()
496(1)
Terminating Execution: die and exit
497(1)
Serializing Variables and Objects
497(2)
Getting Information About the PHP Environment
499(1)
Finding Out What Extensions Are Loaded
499(1)
Identifying the Script Owner
500(1)
Finding Out When the Script Was Modified
500(1)
Loading Extensions Dynamically
500(1)
Temporarily Altering the Runtime Environment
500(1)
Highlighting Source Code
501(1)
Using PHP on the Command Line
502(1)
Next
503(4)
V Building Practical PHP and MySQL Projects
Using PHP and MySQL for Large Projects
507(16)
Applying Software Engineering to Web Development
508(1)
Planning and Running a Web Application Project
508(1)
Reusing Code
509(1)
Writing Maintainable Code
510(4)
Coding Standards
510(3)
Breaking Up Code
513(1)
Using a Standard Directory Structure
514(1)
Documenting and Sharing In-House Functions
514(1)
Implementing Version Control
514(2)
Choosing a Development Environment
516(1)
Documenting Your Projects
516(1)
Prototyping
517(1)
Separating Logic and Content
518(1)
Optimizing Code
518(2)
Using Simple Optimizations
519(1)
Using Zend Products
519(1)
Testing
520(1)
Further Reading
521(1)
Next
521(2)
Debugging
523(18)
Programming Errors
523(8)
Syntax Errors
524(1)
Runtime Errors
525(5)
Logic Errors
530(1)
Variable Debugging Aid
531(2)
Error Reporting Levels
533(1)
Altering the Error Reporting Settings
534(2)
Triggering Your Own Errors
536(1)
Handling Errors Gracefully
536(3)
Next
539(2)
Building User Authentication and Personalization
541(38)
The Problem
541(1)
Solution Components
542(1)
User Identification and Personalization
542(1)
Storing Bookmarks
543(1)
Recommending Bookmarks
543(1)
Solution Overview
543(2)
Implementing the Database
545(1)
Implementing the Basic Site
546(3)
Implementing User Authentication
549(19)
Registering
549(7)
Logging In
556(4)
Logging Out
560(1)
Changing Passwords
561(2)
Resetting Forgotten Passwords
563(5)
Implementing Bookmark Storage and Retrieval
568(6)
Adding Bookmarks
568(2)
Displaying Bookmarks
570(1)
Deleting Bookmarks
571(3)
Implementing Recommendations
574(4)
Wrapping Up and Considering Possible Extensions
578(1)
Next
578(1)
Building a Shopping Cart
579(46)
The Problem
579(1)
Solution Components
580(1)
Building an Online Catalog
580(1)
Tracking Users' Purchases While They Shop
580(1)
Implementing a Payment System
580(1)
Building an Administration Interface
581(1)
Solution Overview
581(4)
Implementing the Database
585(2)
Implementing the Online Catalog
587(8)
Listing Categories
589(3)
Listing Books in a Category
592(2)
Showing Book Details
594(1)
Implementing the Shopping Cart
595(16)
Using the show_cart.php Script
596(3)
Viewing the Cart
599(3)
Adding Items to the Cart
602(2)
Saving the Updated Cart
604(1)
Printing a Header Bar Summary
604(1)
Checking Out
605(6)
Implementing Payment
611(2)
Implementing an Administration Interface
613(9)
Extending the Project
622(1)
Using an Existing System
622(1)
Next
623(2)
Building a Content Management System
625(32)
The Problem
625(1)
Solution Requirements
626(1)
Existing Systems
626(1)
Editing Content
626(2)
Getting Content into the System
626(1)
Databases Versus File Storage
627(1)
Document Structure
627(1)
Using Metadata
628(1)
Formatting the Output
629(1)
Solution Design/Overview
630(1)
Designing the Database
631(2)
Implementing the CMS
633(22)
Front End
633(7)
Back End
640(10)
Searches
650(3)
Editor Screen
653(2)
Extending the Project
655(1)
Next
655(2)
Building a Web-Based Email Service
657(38)
The Problem
657(1)
Solution Components
658(1)
Solution Overview
659(2)
Setting Up the Database
661(2)
Examining the Script Architecture
663(6)
Logging In and Out
669(3)
Setting Up Accounts
672(5)
Creating a New Account
674(2)
Modifying an Existing Account
676(1)
Deleting an Account
676(1)
Reading Mail
677(11)
Selecting an Account
677(3)
Viewing Mailbox Contents
680(3)
Reading a Mail Message
683(3)
Viewing Message Headers
686(1)
Deleting Mail
687(1)
Sending Mail
688(4)
Sending a New Message
688(3)
Replying To or Forwarding Mail
691(1)
Extending the Project
692(1)
Next
693(2)
Building a Mailing List Manager
695(56)
The Problem
695(1)
Solution Components
696(1)
Setting Up a Database of Lists and Subscribers
696(1)
Using File Upload
696(1)
Sending Mail with Attachments
697(1)
Solution Overview
697(3)
Setting Up the Database
700(2)
Defining the Script Architecture
702(9)
Implementing Login
711(6)
Creating a New Account
711(3)
Logging In
714(3)
Implementing User Functions
717(14)
Viewing Lists
717(6)
Viewing List Information
723(2)
Viewing List Archives
725(1)
Subscribing and Unsubscribing
726(2)
Changing Account Settings
728(1)
Changing Passwords
728(2)
Logging Out
730(1)
Implementing Administrative Functions
731(18)
Creating a New List
731(3)
Uploading a New Newsletter
734(2)
Handling Multiple File Upload
736(5)
Previewing the Newsletter
741(2)
Sending the Message
743(6)
Extending the Project
749(1)
Next
750(1)
Building Web Forums
751(32)
The Problem
751(1)
Solution Components
752(1)
Solution Overview
753(1)
Designing the Database
754(3)
Viewing the Tree of Articles
757(13)
Expanding and Collapsing
759(3)
Displaying the Articles
762(1)
Using the treenode Class
763(7)
Viewing Individual Articles
770(3)
Adding New Articles
773(7)
Adding Extensions
780(1)
Using an Existing System
780(1)
Next
781(2)
Generating Personalized Documents in Portable Documents Format (PDF)
783(36)
The Problem
783(5)
Evaluating Document Formats
784(4)
Solution Components
788(3)
Question and Answer System
788(1)
Document Generation Software
788(3)
Solution Overview
791(25)
Asking the Questions
792(2)
Grading the Answers
794(2)
Generating an RTF Certificate
796(4)
Generating a PDF Certificate from a Template
800(3)
Generating a PDF Document Using PDFlib
803(1)
A Hello World Script for PDFlib
803(5)
Generating a Certificate with PDFlib
808(8)
Handling Problems with Headers
816(1)
Extending the Project
817(1)
Further Reading
817(1)
Next
817(2)
Connecting to Web Services with XML and SOAP
819(48)
The Problem
819(7)
Understanding XML
820(4)
Understanding Web Services
824(2)
Solution Components
826(2)
Building a Shopping Cart
826(1)
Using Amazon's Web Services Interfaces
826(1)
Parsing XML
827(1)
Using SOAP with PHP
827(1)
Caching
828(1)
Solution Overview
828(35)
Core Application
833(6)
Showing Books in a Category
839(2)
Getting an AmazonResultSet Class
841(8)
Using REST/XML Over HTTP
849(5)
Using SOAP
854(2)
Caching the Data
856(2)
Building the Shopping Cart
858(4)
Checking Out to Amazon
862(1)
Installing the Project Code
863(1)
Extending the Project
863(1)
Further Reading
864(3)
VI Appendixes
A Installing PHP and MySQL
867(22)
Running PHP as a CGI Interpreter or Module
868(1)
Installing Apache, PHP, and MySQL Under Unix
868(10)
Binary Installation
868(1)
Source Installation
868(7)
httpd.conf File: Snippets
875(1)
Is PHP Support Working?
876(1)
Is SSL Working?
877(1)
Installing Apache, PHP, and MySQL Under Windows
878(9)
Installing MySQL Under Windows
879(3)
Installing Apache Under Windows
882(2)
Installing PHP for Windows
884(3)
Installing PEAR
887(1)
Setting Up Other Configurations
888(1)
B Web Resources
889(4)
PHP Resources
889(2)
MySQL and SQL Specific Resources
891(1)
Apache Resources
891(1)
Web Development
892(1)
Index 893

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program