2014-05-17 Alta

Advanced PHP


You should be at the Beginner PHP course level

Intended Audience
This course is for beginner PHP programmers who want to take their skills   to the next level of building database-driven sites using PHP and MySQL.
Further Training
If you do not know SQL, you should seriously consider doing the SQL course – this is a must  for any IT professional nowadays.

Course Material
If you had done our PHP Beginner, we gave you an original copy of the book: Head First PHP & MySQL (by O’Reilly Press)
as we use this mainly, but we also give additional examples where it falls short. If you had not done it with us,  you will have to purchase the book separately.

Course Info

Day 1
  • Building personalized web apps
  • Prepping the database for log-ins
  • Constructing a log-in user interface
  • Encrypt passwords with SHA()
  • Comparing passwords
  • Authorizing users with HTTP
  • Logging In Users with HTTP Authentication
  • A form for signing up new users
  • Use cookies with PHP
  • A cookie-powered log-in
  • Logging out means deleting cookies
  • Sessions aren’t dependent on the client
  • Keeping up with session data
  • Log out with sessions
  • Complete the session transformation
  • Sessions + Cookies = Superior log-in persistence
  • Eliminate duplicate code
  • Using templates
  • Control your data, control your world
  • Model a database with a schema
  • Wire together multiple tables
  • Foreign keys in action
  • Tables can match row for row
  • One row leads to many
  • Matching rows many-to-many
  • Build a questionnaire
  • Get responses into the database
  • We can drive a form with data
  • Generate the questionnaire form
  • Strive for a bit of normalcy
  • When normalizing, think in atoms
  • Three steps to a normal database
  • Altering the database
  • A query within a query within a query…
  • Let’s all join tables
  • Connect with dots
  • Surely we can do more with inner joins
  • Nicknames for tables and columns
  • Joins to the rescue
  • Five steps to a successful mismatch
  • All we need is a FOR loop
Day 2
  • String and custom functions
  • The search leaves no margin for error
  • SQL queries can be flexible with LIKE
  • Explode a string into individual words
  • implode() builds a string from substrings
  • Preprocess the search string
  • Replace unwanted search characters
  • The query needs legit search terms
  • Copy non-empty elements to a new array
  • Extract substrings from either end
  • Multiple queries can sort our results
  • Functions let you reuse code
  • Build a query with a custom function
  • Custom functions: how custom are they really?
  • SWITCH makes far more decisions than IF
  • Give build_query() the ability to sort
  • We can paginate our results
  • Get only the rows you need with LIMIT
  • Control page links with LIMIT
  • Keep track of the pagination data
  • Set up the pagination variables
  • Revise the query for paginated results
  • Generate the page navigation links
  • Putting together the complete Search script
Day 3
  • Regular expressions
  • Decide what your data should look like
  • Formulate a pattern for phone numbers
  • Match patterns with regular expressions
  • Build patterns using metacharacters
  • Fine-tune patterns with character classes
  • Check for patterns with preg_match()
  • Standardize the phone number data
  • Get rid of the unwanted characters
  • Matching email addresses can be tricky
  • Domain suffixes are everywhere
  • Use PHP to check the domain
  • Email validation: putting it all together
  • Visualizing your data… and more!
  • No input form is safe
  • We need to separate man from machine
  • We can defeat automation with automation
  • Generate the CAPTCHA pass-phrase text
  • Visualizing the CAPTCHA image
  • Inside the GD graphics functions
  • Drawing text with a font
  • Generate a random CAPTCHA image
  • Add CAPTCHA to the Add Score script
  • Five degrees of opposability
  • Storing bar graph data
  • From one array to another
  • Formulating a bar graphing plan
  • Crunching categories
  • Doing the category math
  • Bar graphing basics
  • Draw and display the bar graph image
  • Individual bar graph images for all
  • Leftovers, Set up a Development Environment, Extend your PHP
Day 4
  • Syndication and web services
  • RSS pushes web content to the people
  • RSS is really XML
  • From database to newsreader
  • Visualizing RSS
  • Dynamically generate an RSS feed
  • Link to the RSS feed
  • A video is worth a million words
  • Pulling web content from others
  • Syndicating YouTube videos
  • Make a YouTube video request
  • REST request
  • YouTube speaks XML
  • Deconstruct a YouTube XML response
  • Visualize the XML video data
  • Access XML data with objects
  • From XML elements to PHP objects
  • Drill intoXML data with objects
  • Not without a namespace!
  • Lay out videos for viewing
  • Format video data for display
Day 5
  • What Is a Function?
  • Why Functions Are Useful
  • Calling Functions
  • Working with Variable Functions
  • Writing Your Own Functions
  • Working with References
  • What Is Object-Oriented Programming?
  • Advantages of OOP
  • Understanding Basic OOP Concepts
  • Creating Classes and Objects in PHP
  • Creating and Using Properties
  • Working with Methods
  • Object Overloading with _get(), _set(),
  • and _call()
  • Using Inheritance to Extend the Power of Objects
  • Constructors and Destructors
  • Automatically Loading Class Files
  • Storing Objects as Strings
  • Determining an Object’s Class
  • Handling HTML Forms with PHP
  • Preserving State With Query Strings, Cookies, and Sessions
  • Making Your Job Easier with PEAR
  • String Matching with Regular Expressions
Duration and pricing
  • Full-time over 5 days (R7995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R9995 excl Vat) or 8 Saturdays, 3 hour sessions) (R9995 excl Vat)
  • Distance-learning over up to 6 months (R6995 excl Vat)


1. Upon completion of this course we will issue you with an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
2. You have the option to get the competency  / academic certificate if you :
hand in a project (pre-approved) covering most of the topics in the book
The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.



2013-05-12 getcertarn

Due to the fast-pace of the IT Industry,  senior software developers hardly have time to re-visit fundamental topics. Our courses are designed to teach the fundamentals in-depth and practical so that the juniors entering the job market, can refer back to their fundamentals throughout their career.

In my 30 years in the software industry, I have seen many excellent, senior developers that missed crucial elementary topics of a software language. This could have saved them significant time on certain projects in their careers. I was one of those that learned Object Orientation only later in my career, as a lot of systems in the IT industry was developed before Object Orientated languages became widely used. Theoretical knowledge only does not sink in, therefore our training courses are designed to instil the crucial fundamental topics in a practical way.

If you have any junior software interns in your company, I would like to bring to your attention that our next

5 month programme for junior developers is due to start in July 2013:

  1. Application development with Java – (this is also applicable to C#.NET juniors as it is a fundamental course and conversion to .NET can be done easily after the course)
  2. Web Development with PHP

Group discounts

If you have more than one intern to send, please enquire about our discounted group rates.


There is room for customisation to the courses, if you feel that you need a certain topic covered more extensively for your students.

Need more interns?

We have visited over 75 schools in Gauteng so far this year and interviewed many matriculants who wish to study software development  in 2014. We have partnered with a psychometric institution to perform aptitude tests on them to identify their natural aptitude for software development and recommend training accordingly. We will have quite a few junior entrants available in 2014 if you would like to consider to invest in juniors.