SitemapSams Teach Yourself PHP, MySQL and Apache All in OneTable of ContentsCopyrightAbout the AuthorsLead authorContributing authorsAcknowledgmentsWe Want to Hear from You!Reader ServicesIntroductionWho Should Read This Book?How This Book Is OrganizedConventions Used in This BookPart I: Laying the GroundworkChapter 1. Installing and Configuring MySQLCurrent and Future Versions of MySQLHow to Get MySQLInstalling MySQL on Linux/UnixInstalling MySQL on WindowsTroubleshooting Your InstallationBasic Security GuidelinesIntroducing the MySQL Privilege SystemWorking with User PrivilegesSummaryQ&AWorkshopChapter 2. Installing and Configuring ApacheCurrent and Future Versions of ApacheChoosing an Installation MethodInstalling Apache on Linux/UnixInstalling Apache on WindowsApache Configuration File StructureApache Log FilesApache-Related CommandsStarting Apache for the First TimeTroubleshootingSummaryQ&AWorkshopChapter 3. Installing and Configuring PHPCurrent and Future Versions of PHPBuilding PHP on Linux/Unix with ApacheInstalling PHP Files on Windowsphp.ini BasicsTesting Your InstallationGetting Installation HelpThe Basics of PHP ScriptsSummaryQ&AWorkshopPart II: PHP Language StructureChapter 4. The Building Blocks of PHPVariablesData TypesOperators and ExpressionsConstantsSummaryQ&AWorkshopChapter 5. Flow Control Functions in PHPSwitching FlowLoopsCode Blocks and Browser OutputSummaryQ&AWorkshopChapter 6. Working with FunctionsWhat Is a Function?Calling FunctionsDefining a FunctionReturning Values from User-Defined FunctionsVariable ScopeSaving State Between Function Calls with the static StatementMore About ArgumentsTesting for the Existence of a FunctionSummaryQ&AWorkshopChapter 7. Working with Arrays and ObjectsWhat Is an Array?Creating ArraysSome Array-Related FunctionsCreating an ObjectObject InheritanceSummaryQ&AWorkshopPart III: Getting Involved with the CodeChapter 8. Working with Strings, Dates, and TimesFormatting Strings with PHPInvestigating Strings in PHPManipulating Strings with PHPUsing Date and Time Functions in PHPSummaryWorkshopChapter 9. Working with FormsCreating a Simple Input FormAccessing Form Input with User-Defined ArraysCombining HTML and PHP Code on a Single PageUsing Hidden Fields to Save StateRedirecting the UserSending Mail on Form SubmissionWorking with File UploadsSummaryWorkshopChapter 10. Working with User SessionsSession Function OverviewStarting a SessionWorking with Session VariablesPassing Session IDs in the Query StringDestroying Sessions and Unsetting VariablesSummaryQ&AWorkshopChapter 11. Working with Files and DirectoriesIncluding Files with include()Testing FilesCreating and Deleting FilesOpening a File for Writing, Reading, or AppendingReading from FilesWriting or Appending to a FileWorking with DirectoriesSummaryQ&AWorkshopChapter 12. Working with the Server EnvironmentOpening Pipes to and from Processes Using popen()Running Commands with exec()Running Commands with system() or passthru()SummaryQ&AWorkshopChapter 13. Working with ImagesUnderstanding the Image-Creation ProcessNecessary Modifications to PHPDrawing a New ImageGetting Fancy with Pie ChartsModifying Existing ImagesSummaryQ&AWorkshopPart IV: PHP and MySQL IntegrationChapter 14. Learning the Database Design ProcessThe Importance of Good Database DesignTypes of Table RelationshipsUnderstanding NormalizationFollowing the Design ProcessSummaryQ&AWorkshopChapter 15. Learning Basic SQL CommandsLearning the MySQL Data TypesLearning the Table Creation SyntaxUsing the INSERT CommandUsing the SELECT CommandUsing WHERE in Your QueriesSelecting from Multiple TablesUsing the UPDATE Command to Modify RecordsUsing the REPLACE CommandUsing the DELETE CommandFrequently Used String Functions in MySQLUsing Date and Time Functions in MySQLSummaryQ&AWorkshopChapter 16. Interacting with MySQL Using PHPConnecting to MySQL with PHPWorking with MySQL DataSummaryWorkshopPart V: Basic ProjectsChapter 17. Managing a Simple Mailing ListDeveloping the Subscription MechanismDeveloping the Mailing MechanismSummaryQ&AWorkshopChapter 18. Creating an Online Address BookPlanning and Creating the Database TablesCreating a MenuCreating the Record Addition MechanismViewing RecordsCreating the Record Deletion MechanismAdding Subentries to a RecordSummaryWorkshopChapter 19. Creating a Simple Discussion ForumDesigning the Database TablesCreating the Input Forms and ScriptsDisplaying the Topic ListDisplaying the Posts in a TopicAdding Posts to a TopicSummaryChapter 20. Creating an Online StorefrontPlanning and Creating the Database TablesDisplaying Categories of ItemsDisplaying ItemsSummaryWorkshopChapter 21. Creating a Shopping Cart MechanismPlanning and Creating the Database TablesIntegrating the Cart with Your StorefrontPayment Methods and the Checkout SequenceSummaryWorkshopChapter 22. Creating a Simple CalendarBuilding a Simple Display CalendarCreating a Calendar LibrarySummaryQ&AWorkshopChapter 23. Restricting Access to Your ApplicationsAuthentication OverviewApache Authentication Module FunctionalityUsing Apache for Access ControlCombining Apache Access MethodsLimiting Access Based on HTTP MethodsIntroducing CookiesSetting a Cookie with PHPRestricting Access Based on Cookie ValuesSummaryQ&AWorkshopChapter 24. Logging and Monitoring Web Server ActivityStandard Apache Access LoggingStandard Apache Error LoggingManaging Apache LogsLogging Custom Information to a DatabaseSummaryQ&AWorkshopChapter 25. Application LocalizationAbout Internationalization and LocalizationAbout Character SetsEnvironment ModificationsCreating a Localized Page StructureSummaryQ&AWorkshopPart VI: Administration and Fine TuningChapter 26. Apache Performance Tuning and Virtual HostingScalability IssuesLoad Testing with ApacheBenchProactive Performance TuningPreventing AbuseImplementing Virtual HostingSummaryQ&AChapter 27. Setting Up a Secure Web ServerThe Need for SecurityThe SSL ProtocolObtaining and Installing SSL ToolsManaging CertificatesSSL ConfigurationSummaryQ&AChapter 28. Optimizing and Tuning MySQLBuilding an Optimized PlatformMySQL Startup OptionsOptimizing Your Table StructureOptimizing Your QueriesUsing the FLUSH CommandUsing the SHOW CommandSummaryQ&AWorkshopChapter 29. Software UpgradesStaying in the LoopUpgrading MySQLUpgrading ApacheUpgrading PHPSummaryWorkshopPart VII: Looking Toward the FutureChapter 30. Features and Backward Compatibility of PHP 5.0What's Wrong With PHP 4?The New Object ModelAdditional New FeaturesSo, When Should I Upgrade to PHP 5?SummaryQ&AChapter 31. Features and Backward Compatibility of MySQL 4.1Using SubqueriesInternationalization EnhancementsAdditional New FunctionalityLooking Further Ahead to MySQL 5.0SummaryQ&AWorkshopPart VIII: AppendixAppendix A. Installing MySQL, Apache, and PHP from the CD-ROMLinux/Unix InstallationWindows InstallationTroubleshootingIndexindex_SYMBOLindex_Aindex_Bindex_Cindex_Dindex_Eindex_Findex_Gindex_Hindex_Iindex_Jindex_Kindex_Lindex_Mindex_Nindex_Oindex_Pindex_Qindex_Rindex_Sindex_Tindex_Uindex_Vindex_Windex_Xindex_Yindex_Z