Introduction
- Introduction To php Training
- History of php Training
- Comparison with dynamic content alternatives (Perl, CGI, ASP, JSP, Servlets , CGI, etc)
- PHP tools and set up (web browser/server, editor, libraries, etc)
- Create a basic PHP Script
- Opening and Closing tags
- PHP as a command line or batch language
- Taking user input (HTML forms)
- Self Referring Forms
- Selecting alternatives
- Use PHP to generate HTTP headers
- Generating HTTP redirects
- Pass PHP variables via the URL
- Debugging Tips
- Where to find PHP documentation
Taking User Input From Forms Via PHP
- Creating forms with PHP
- Security Protection from Cross Site Scripting
- Using the form GET method
- Using the form POST method
- Obtaining data from forms through variables$_REQUEST,$_POSTor$_GET?
- Using hidden fields
- Secure Web Forms (HTTPS and SSL)
- Calling pages from themselves using forms
- Quoting HTML entities in user input
Variables And Expressions In PHP
- Identifiers
- Data Types (integers, floats, strings, and booleans)
- Type juggling
- Text constants, interpolation (strings, arrays, objects, functions), here & now documents
- Creating Variables
- Variable assignment
- Variable Scope
- Namespaces
- User-defined Constants
- String constants,variable interpolation into strings
- Array, Object&Function interpolation
- HTTP environment variables
- Magic ConstantsGLOBALSarray
- Variable References
- PHP Operators
- Arithmetic Operators
- Logical Operators
- Relational (Comparison) Operators
- The Identity Operator
- The Assignment Operators
- Increment & Decrement Operators
- Bitwise Operators
- Error Suppression Operator
- The Conditional (Ternary) Operator
- The Default Operator
- Execution Operators
- Other Operators
- Assignment Operators
- Operator Precedence and Associativity
Conditional Tests And Events In PHP
- True and Falseif
- Comparing Strings and Numberselseandelseif
- Hierarchical conditions (nestedifstatements)
- The? :Operator
- Comparing for equality or identity
- The switch/case statement
- Alternative Syntax for Control Structures
- PHP Flow Control
- Loopswhiledo ... while forbreakandcontinue goto exit
PHP Configuration
- Thephp.inifile
- Module Vs CGI Usageregister_globals
- Control of error logging
- Control of resource limits
- Commonly set configurations
- File system securitysafe_mode and open_basedir
- PHP4 compatibility in PHP5
- A glance at upcoming PHP6
- PHP Functions
- Purpose of functions
- Built-in functions
- Declaring functions
- Functions Arguments
- Default Arguments
- Arguments - Call by Reference
- Return
- Returning References
- Variable Scope (global vs local)
- Static variables
- Recursionincludeandrequire
- Variable function calls
Storing Data In Arrays Using PHP
- What are arrays?
- How and when to use arrays
- Indexing arrays, numeric and hashes
- Initialising arrays
- Using foreach
- Add/remove elements from arrays
- One-dimensional arrays
- Multi-dimensional arrays
- References to array elements
- Arrays in forms
- Array operators
- Array related functions
- Handling Databases With PHP
- Error-handling Stratagies
- Connection/disconnection to the
- database, log in/log out
- Escaping strings in SQL statements
- Including common access functions
- Doing simple SQL queries via PHP
- Building HTML tables using SQL
- Queries
- Avoiding SQL Injection attacks
- Access to: MySql, MySqli, Oracle and
- MS-SQL
- Using PEAR DB
- Using PHP Data Objects - PDO
- An Insight to Smart Programming
String Manipulation In PHP
- Substring and [] operators
- Case conversion, trimming
- Formatting output data withsprintf
- Adding & removing backslashes
- Regular expressions
- Metacharacters: character classes,repetitions
- Regular Expression Examples
- Alternation and Grouping
Sessions And Cookies In PHP
- What is a session?
- Dependencies on thephp.ini file
- Understanding PHP session variables
- Create a PHP session variable
- Register and modify PHP session variables
- Putting PHP session IDs in pages
- Good Practise with sessions and PHP
- Cookie properties
- Setting a cookie in PHP
- Retrieving PHP cookies
- Expiring/Deleting PHP cookies
- Drawbacks to cookies
- Using cookies well
- Testing for cookie support
- Sessions without cookies
- Cookie Security Issues
File And Directory Access Using PHP
- Opening files, local and remote
- Reading & writing and moving about in filesfflush(),file(),fpassthru(),readfile()
- PHP portability on different Operating Systems
- Finding file metadata: size, ownership, modification time
- Handling file permissions
- Handling file ownership
- Copying, Renaming and Deleting Files
- File locking
- Opening and reading directories
- File uploads from the browser/user
- Other I/O Issues In PHP
- Getting IP addresses from visitors
- Getting referring URLs from visitors
- Environment variables
- Showing different content to different browsers (IE, Netscape, Firefox, Mozilla, Opera, etc)
- Handling HTTP and MIME headers
Object Orientation In PHP
- Object basics
Classes in PHP
- PHP4 - constructors
- PHP5 - constructors and destructors
- Inheritance
- Accessing instance data and functions__sleepand__wakeup__autoload
- Class constants
- PHP5 OO Additions,type hints,foreach,__autoload
- PHP 5.4— instantiate & member access
- Objects: Assignments and Referencestry,throwcatchexception handling
PEAR, PECL And Smarty
- PECL quick tour
- APC - Alternative PHP Cache
- Xdebug - debugging and profiling
- PEAR installation and quick tour
- PEAR Config
- PEAR Log
- PEAR Auth (login)
- PEAR HTML_QuickForm2
- Smarty Templates
- Smarty and HTML_QuickForm2
- Smarty and QuickForm2 help with security
- Handling Email With PHP
- Sending email
- Sending multi part email-MIME
- Accessing mail boxes – IMAP and POP
Graphics In PHP
- Graphics basics,referencing a PHP scrip in an IMG tag
- Image MIME type
Basic examples,line/box drawing
- Creation from an existing image
- Image copying and resizing
- Drawing text on images
- True Type fonts
Putting It All Together-Outline
- Application design
- Quick start
- Web server configuration
- Apache Virtualhost config
- Simple project-2 table database
- Project skeleton
- Configuration:test&live sites
- Structure of web program
- Smarty templates for the project
- Structure of a Smarty template
- Example Smarty template
- Firefox Add-ons: Web Developer, Firebug, YSlow
- Using Rsync to copy test to live
- Putting It All Together-Database
- The database behind the application
- Designing the database
- Metadata management
- Entity-relationship (ER) diagrams
- ER Diagram example
- Data Modelling tools
- Users to access the database
- Creating the databases and tables
- Creating test data
Putting It All Together-Displaying Data
- Displaying data from the database
- Outline of data display function
- Example list display function
- Displaying a list with Smarty
- More succinct use of SQL
- SQLWHEREclauses
- Combine tests in a WHERE clause
- SQL:grouping and Ordering of results
- SQL JOIN LEFT,RIGHT&FULL JOINs
- Displaying long lists in pages withLIMIT
- Showing lists a page at a time
- Implementing pages in Smarty Templates
- Making Smarty and SQL play well
- Summary
Acting On Items In A List
- Choosing items from a list
- Big picture
- Multiple items chosen at once
- One item only to be chosen
- One item with selectactiononChange:auto submit the form
- Greying out options
- Searching in a list
- What to do with something chosen
- Conclusion
Create and Edit Data
- Creating & editing data
- Creating & editing are much the same
- Use the same names everywhere
outline use of a HTML_QuickForm2form
- Adding fields to the form
- Field validation
- Validation types
- Smarty Template withHTML_QuickForm2
- Form validation and processing
- Display of validation errors
- Conclusion
Putting It All Together-Conclusion
- Other issues
- Version control
- Audit trail
- security and access control
- Performance
- Styling and accessibility