| | | Copyright |
| | | About the Author |
| | | Acknowledgements |
| | | We Want to Hear from You! |
| | | Introduction |
| | | | Who Should Read This Book? |
| | | | How This Book Is Organized |
| | | | Conventions Used in This Book |
| | | Part I: Laying the Groundwork |
| | | | Chapter 1. Installation QuickStart Guide |
| | | | Linux/UNIX Installation |
| | | | Windows Installation |
| | | | Mac OS X Installation |
| | | | Troubleshooting |
| | | | Chapter 2. Installing and Configuring MySQL |
| | | | Current and Future Versions of MySQL |
| | | | How to Get MySQL MySQL |
| | | | Installing MySQL on Linux/UNIX |
| | | | Installing MySQL on Mac OS X |
| | | | Installing MySQL on Windows |
| | | | Troubleshooting Your Installation |
| | | | Basic Security Guidelines |
| | | | Introducing the MySQL Privilege System |
| | | | Working with User Privileges |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 3. Installing and Configuring Apache |
| | | | Current and Future Versions of Apache |
| | | | Choosing the Appropriate Installation Method |
| | | | Installing Apache on Linux/UNIX |
| | | | Installing Apache on Mac OS X |
| | | | Installing Apache on Windows |
| | | | Apache Configuration File Structure |
| | | | Apache Log Files |
| | | | Apache-Related Commands |
| | | | Starting Apache for the First Time |
| | | | Troubleshooting |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 4. Installing and Configuring PHP |
| | | | Current and Future Versions of PHP |
| | | | Building PHP on Linux/UNIX with Apache |
| | | | Installing PHP on Mac OS X |
| | | | Installing PHP on Windows |
| | | | php.ini Basics |
| | | | Testing Your Installation |
| | | | Getting Installation Help |
| | | | The Basics of PHP Scripts |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | Part II: PHP Language Structure |
| | | | Chapter 5. The Building Blocks of PHP |
| | | | Variables |
| | | | Data Types |
| | | | Operators and Expressions |
| | | | Constants |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 6. Flow Control Functions in PHP |
| | | | Switching Flow |
| | | | Loops |
| | | | Code Blocks and Browser Output |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 7. Working with Functions |
| | | | What Is a Function? |
| | | | Calling Functions |
| | | | Defining a Function |
| | | | Returning Values from User-Defined Functions |
| | | | Variable Scope |
| | | | Saving State Between Function Calls with the static Statement |
| | | | More About Arguments |
| | | | Testing for the Existence of a Function |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 8. Working with Arrays |
| | | | What Are Arrays? |
| | | | Creating Arrays |
| | | | Some Array-Related Functions |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 9. Working with Objects |
| | | | Creating an Object |
| | | | Object Inheritance |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | Part III: Getting Involved with the Code |
| | | | Chapter 10. Working with Strings, Dates, and Time |
| | | | Formatting Strings with PHP |
| | | | Investigating Strings in PHP |
| | | | Manipulating Strings with PHP |
| | | | Using Date and Time Functions in PHP |
| | | | Other String, Date, and Time Functions |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 11. Working with Forms |
| | | | Creating a Simple Input Form |
| | | | Accessing Form Input with User-Defined Arrays |
| | | | Combining HTML and PHP Code on a Single Page |
| | | | Using Hidden Fields to Save State |
| | | | Redirecting the User |
| | | | Sending Mail on Form Submission |
| | | | Working with File Uploads |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 12. Working with Cookies and User Sessions |
| | | | Introducing Cookies |
| | | | Setting a Cookie with PHP |
| | | | Session Function Overview |
| | | | Starting a Session |
| | | | Working with Session Variables |
| | | | Passing Session IDs in the Query String |
| | | | Destroying Sessions and Unsetting Variables |
| | | | Using Sessions in an Environment with Registered Users |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 13. Working with Files and Directories |
| | | | Including Files with include() |
| | | | Validating Files |
| | | | Creating a Function That Performs Multiple File Tests |
| | | | Creating and Deleting Files |
| | | | Opening a File for Writing, Reading, or Appending |
| | | | Reading from Files |
| | | | Writing or Appending to a File |
| | | | Working with Directories |
| | | | Opening Pipes to and from Processes Using popen() |
| | | | Running Commands with exec() |
| | | | Running Commands with system() or passthru() |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 14. Working with Images |
| | | | Understanding the Image-Creation Process |
| | | | Necessary Modifications to PHP |
| | | | Drawing a New Image |
| | | | Getting Fancy with Pie Charts |
| | | | Modifying Existing Images |
| | | | Image Creation from User Input |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | Part IV: PHP and MySQL Integration |
| | | | Chapter 15. Understanding the Database Design Process |
| | | | The Importance of Good Database Design |
| | | | Types of Table Relationships |
| | | | Understanding Normalization |
| | | | Following the Design Process |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 16. Learning Basic SQL Commands |
| | | | Learning the MySQL Data Types |
| | | | Learning the Table Creation Syntax |
| | | | Using the INSERT Command |
| | | | Using the SELECT Command |
| | | | Using WHERE in Your Queries |
| | | | Selecting from Multiple Tables |
| | | | Using the UPDATE Command to Modify Records |
| | | | Using the REPLACE Command |
| | | | Using the DELETE Command |
| | | | Frequently Used String Functions in MySQL |
| | | | Using Date and Time Functions in MySQL |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 17. Using Transactions and Stored Procedures in MySQL |
| | | | What Are Transactions? |
| | | | What Are Stored Procedures? |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 18. Interacting with MySQL Using PHP |
| | | | MySQL Versus MySQLi Functions |
| | | | Connecting to MySQL with PHP |
| | | | Working with MySQL Data |
| | | | Summary |
| | | | Workshop |
| | | Part V: Basic Projects |
| | | | Chapter 19. Managing a Simple Mailing List |
| | | | Developing the Subscription Mechanism |
| | | | Developing the Mailing Mechanism |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 20. Creating an Online Address Book |
| | | | Planning and Creating the Database Tables |
| | | | Creating a Menu |
| | | | Creating the Record Addition Mechanism |
| | | | Viewing Records |
| | | | Creating the Record Deletion Mechanism |
| | | | Adding Subentries to a Record |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 21. Creating a Simple Discussion Forum |
| | | | Designing the Database Tables |
| | | | Creating the Input Forms and Scripts |
| | | | Displaying the Topic List |
| | | | Displaying the Posts in a Topic |
| | | | Adding Posts to a Topic |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 22. Creating an Online Storefront |
| | | | Planning and Creating the Database Tables |
| | | | Displaying Categories of Items |
| | | | Displaying Items |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 23. Creating a Shopping Cart Mechanism |
| | | | Planning and Creating the Database Tables |
| | | | Integrating the Cart with Your Storefront |
| | | | Payment Methods and the Checkout Sequence |
| | | | Summary |
| | | | Workshop |
| | | | Chapter 24. Creating a Simple Calendar |
| | | | Building a Simple Display Calendar |
| | | | Creating a Calendar Library |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 25. Restricting Access to Your Applications |
| | | | Authentication Overview |
| | | | Apache Authentication Module Functionality |
| | | | Using Apache for Access Control |
| | | | Combining Apache Access Methods |
| | | | Limiting Access Based on HTTP Methods |
| | | | Restricting Access Based on Cookie Values |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 26. Logging and Monitoring Web Server Activity |
| | | | Standard Apache Access Logging |
| | | | Standard Apache Error Logging |
| | | | Managing Apache Logs |
| | | | Logging Custom Information to a Database |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 27. Application Localization |
| | | | About Internationalization and Localization |
| | | | About Character Sets |
| | | | Environment Modifications |
| | | | Creating a Localized Page Structure |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 28. Working with XML |
| | | | What Is XML? |
| | | | Accessing XML in PHP Using DOM Functions |
| | | | Accessing XML in PHP Using SimpleXML Functions |
| | | | Summary |
| | | | Workshop |
| | | Part VI: Administration and Fine-tuning |
| | | | Chapter 29. Apache Performance Tuning and Virtual Hosting |
| | | | Scalability Issues |
| | | | Load Testing with ApacheBench |
| | | | Proactive Performance Tuning |
| | | | Preventing Abuse |
| | | | Implementing Virtual Hosting |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 30. Setting Up a Secure Web Server |
| | | | The Need for Security |
| | | | The SSL Protocol |
| | | | Obtaining and Installing SSL Tools |
| | | | Managing Certificates |
| | | | SSL Configuration |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 31. Optimizing and Tuning MySQL |
| | | | Building an Optimized Platform |
| | | | MySQL Startup Options |
| | | | Optimizing Your Table Structure |
| | | | Optimizing Your Queries |
| | | | Using the FLUSH Command |
| | | | Using the SHOW Command |
| | | | Summary |
| | | | Q&A |
| | | | Workshop |
| | | | Chapter 32. Software Upgrades |
| | | | Staying in the Loop |
| | | | Upgrading MySQL |
| | | | Upgrading Apache |
| | | | Upgrading PHP |
| | | | Summary |
| | | | Workshop |
| | | Index |