- Introduction - [[phpsqlet:Welcome]] - [[phpsqlet:Introduction]] - [[phpsqlet:Using the exercise files]] - PHP Overview - [[phpsqlet:What is PHP?]] - [[phpsqlet:The history of PHP]] - [[phpsqlet:Why choose PHP?]] - [[phpsqlet:Installation overview]] - Mac Installation - [[phpsqlet:Overview]] - [[phpsqlet:Working with Apache Web Server]] - [[phpsqlet:Changing the document root]] - [[phpsqlet:Installing to Yosemite]] - [[phpsqlet:Enabling PHP]] - [[phpsqlet:Upgrading PHP]] - [[phpsqlet:Configuring PHP]] - [[phpsqlet:Installing MySQL]] - [[phpsqlet:Configuring MySQL]] - [[phpsqlet:Text editor]] - Windows Installation - [[phpsqlet:Overview (MS-windows)]] - [[phpsqlet:Installing WampServer]] - [[phpsqlet:Finding the document root]] - [[phpsqlet:Configuring PHP (MS-windows)]] - [[phpsqlet:Configuring MySQL (MS-windows)]] - [[phpsqlet:Text editor (MS-windows)]] - First Steps - [[phpsqlet:Embedding PHP code on a page]] - [[phpsqlet:Outputting dynamic text]] - [[phpsqlet:The operational trail]] - [[phpsqlet:Inserting code comments]] - Exploring Data Types - [[phpsqlet:Variables]] - [[phpsqlet:Strings]] - [[phpsqlet:String functions]] - [[phpsqlet:Numbers part one - Integers]] - [[phpsqlet:Numbers part two - Floating points]] - [[phpsqlet:Arrays]] - [[phpsqlet:Associative arrays]] - [[phpsqlet:Arrays functions]] - [[phpsqlet:Booleans]] - [[phpsqlet:NULL and empty]] - [[phpsqlet:Type juggling and casting]] - [[phpsqlet:Constants]] - Control Structures - Logical Expressions - [[phpsqlet:If statements]] - [[phpsqlet:Else and elseif statements]] - [[phpsqlet:Logical operators]] - [[phpsqlet:Switch statements]] - Control Structures - Loops - [[phpsqlet:While loops]] - [[phpsqlet:For loops]] - [[phpsqlet:Foreach loops]] - [[phpsqlet:Continue]] - [[phpsqlet:Break]] - [[phpsqlet:Understanding array pointers]] - User-Defined Functions - [[phpsqlet:Defining functions]] - [[phpsqlet:Function arguments]] - [[phpsqlet:Returning values from a function]] - [[phpsqlet:Multiple return values]] - [[phpsqlet:Scope and global variables]] - [[phpsqlet:Setting default argument values]] - Debugging - [[phpsqlet:Common problems]] - [[phpsqlet:Warnings and errors]] - [[phpsqlet:Debugging and troubleshooting]] - Building Web Pages with PHP - [[phpsqlet:Links and URLs]] - [[phpsqlet:Using GET values]] - [[phpsqlet:Encoding GET values]] - [[phpsqlet:Encoding for HTML]] - [[phpsqlet:Including and requiring files]] - [[phpsqlet:Modifying headers]] - [[phpsqlet:Page redirection]] - [[phpsqlet:Output buffering]] - [[phpsqlet:Introduction]] - [[phpsqlet:Introduction]] - Working with Forms and Form Data - [[phpsqlet:Building forms]] - [[phpsqlet:Detecting form submissions]] - [[phpsqlet:Single-page form processing]] - [[phpsqlet:Validating form values]] - [[phpsqlet:Problems with validation logic]] - [[phpsqlet:Displaying validation errors]] - [[phpsqlet:Custom validation functions]] - [[phpsqlet:Single-page form with validations]] - Working with Cookies and Sessions - [[phpsqlet:Working with cookies]] - [[phpsqlet:Setting cookie values]] - [[phpsqlet:Reading cookie values]] - [[phpsqlet:Unsetting cookie values]] - [[phpsqlet:Working with sessions]] - MySQL Basics - [[phpsqlet:MySQL introduction]] - [[phpsqlet:Creating a database]] - [[phpsqlet:Creating a database table]] - [[phpsqlet:CRUD in MySQL]] - [[phpsqlet:Populating a MySQL database]] - [[phpsqlet:Relational database tables]] - [[phpsqlet:Populating the relational table]] - Using PHP to Access MySQL - [[phpsqlet:Database APIs in PHP]] - [[phpsqlet:Connecting to MySQL with PHP]] - [[phpsqlet:Retrieving data from MySQL]] - [[phpsqlet:Working with retrieved data]] - [[phpsqlet:Creating records with PHP]] - [[phpsqlet:Updating and deleting records with PHP]] - [[phpsqlet:SQL injection]] - [[phpsqlet:Escaping strings for MySQL]] - [[phpsqlet:Introducing prepared statements]] - Building a Content Management System (CMS) - [[phpsqlet:Blueprinting the application]] - [[phpsqlet:Building the CMS database]] - [[phpsqlet:Establishing your work area]] - [[phpsqlet:Creating and styling the first page]] - [[phpsqlet:Making page assets reusable]] - [[phpsqlet:Connecting the application to the database]] - Using Site Navigation to Choose Content - [[phpsqlet:Adding pages to the navigation subjects]] - [[phpsqlet:Refactoring the navigation]] - [[phpsqlet:Selecting pages from the navigation]] - [[phpsqlet:Highlighting the current page]] - [[phpsqlet:Moving the navigation to a function]] - Application CRUD - [[phpsqlet:Finding a subject in the database]] - [[phpsqlet:Refactoring the page selection]] - [[phpsqlet:Creating a new subject form]] - [[phpsqlet:Processing form values and adding subjects]] - [[phpsqlet:Passing data in the session]] - [[phpsqlet:Validating form values]] - [[phpsqlet:Creating an edit subject form]] - [[phpsqlet:Using single-page submission]] - [[phpsqlet:Deleting a subject]] - [[phpsqlet:Cleaning up]] - [[phpsqlet:Assignment - Pages CRUD]] - [[phpsqlet:Assignment results - Pages CRUD]] - Building the Public Area - [[phpsqlet:The public appearance]] - [[phpsqlet:Using a context for conditional code]] - [[phpsqlet:Adding a default subject behavior]] - [[phpsqlet:The public content area]] - [[phpsqlet:Protecting page visibility]] - Regulating Page Access - [[phpsqlet:User authentication overview]] - [[phpsqlet:Admin CRUD]] - [[phpsqlet:Encrypting passwords]] - [[phpsqlet:Salting passwords]] - [[phpsqlet:Adding password encryption to CMS]] - [[phpsqlet:New PHP password functions]] - [[phpsqlet:Creating a login system]] - [[phpsqlet:Checking for authorization]] - [[phpsqlet:Creating a logout page]] - Conclusion - [[phpsqlet:Next steps]]