This site is powered by
course builder. Create your online course today.
Start now
Create your course
with
Autoplay
Autocomplete
Previous Lesson
Complete and Continue
The Ultimate Web Development Course
Course Introduction
Introduction to the course (7:22)
Working Files, Accompanying eBook, and Course Bookmarks
Komodo Text Editor
Introducing Komodo Edit (2:05)
Download Komodo Edit (2:18)
Configure Komodo Edit (3:54)
Local Webserver Installation
Introducing XAMPP (2:41)
Download and Install XAMPP (5:51)
Change Server Timezone (2:19)
XAMPP Tools and phpMyAdmin (1:12)
Bare Bones HTML5
Introducing HTML5 (4:44)
Bare bones HTML - Movies List Page (12:20)
Bare Bones HTML - Single Movie Page (2:18)
Bare Bones HTML - Admin Page (5:26)
Styling with CSS
Introduction to Styling with CSS (5:33)
CSS Reset (4:39)
Styling with Classes and IDs (4:00)
Applying Classes to index.html (6:51)
Box Layout (10:56)
HTML-shiv for IE8 (5:35)
Styling the header and top navigation (12:33)
Styling the favourites and movie list panel (13:04)
Styling the footer (5:32)
Styling the single movie page (8:19)
Styling the admin pages (20:34)
Creating background images with a CSS sprite (9:17)
Cross-browser compatibility check (1:37)
Validate HTML (1:31)
Essential PHP
Introduction to PHP (2:02)
Combining PHP and HTML to display strings, variables, and HTML tags (14:45)
Echoing quote marks - String delimiters (4:49)
PHP Conditions (6:14)
Switch ... case (2:37)
PHP Loops (4:32)
PHP Includes (7:36)
Arrays (21:27)
Passing variables in the URL (6:09)
Passing variables without their appearing in the URL (4:54)
Guarding against missing variables (4:14)
Functions and variable scope (4:27)
Passing data to functions with parameters (5:20)
MySQL in phpMyAdmin
What is a Database (6:44)
Create a database, add tables (6:15)
Insert data (9:11)
Import data (4:38)
Select records (4:30)
Update existing database records (2:25)
Select favourites (4:09)
Delete records, empty and delete tables and database (3:35)
MySQL in PHP
Initialise and connect to a database with mysqli (13:33)
Select all records from a database (6:58)
Select matching records using WHERE ... AND (4:11)
SQL injection demonstrated (2:48)
Combating SQL injection with mysqli real_escape_string (2:25)
Combating SQL injection with prepared statements (7:13)
Add data through PHP interface (3:50)
Delete data through PHP interface (4:16)
From static HTML to dynamic PHP
Introduction to Section 9 - PHP (1:48)
Efficient, reusable code with PHP includes (9:38)
One index file for single movie and movies list (9:06)
One admin file for both users and movies admin pages (6:36)
Initialise and connect to the favourite movies database (2:53)
Displaying dynamic data - the list of users (9:21)
Convert users list to function (10:19)
Set include paths in parent files (2:11)
User navigation - test if valid user set (6:09)
Set parameters for show users function (3:42)
Parameterised show users function (8:18)
Catching missing and invalid user_id (4:57)
ASSIGNMENT 1: Write the favourite movies display function
Assignment 1: Solution (7:36)
ASSIGNMENT 2: Write the non-favourites display function
Assignment 2: Solution (7:26)
Insert personal greeting on movie list page (2:39)
The single movie display (2:04)
Catching missing and invalid user input - movie_id (6:44)
Catching empty movie-goers table (5:31)
ASSIGNMENT 3: Catching empty movies table
Assignment 3: Solution (3:14)
Data-dependent title for favourites list (4:48)
Data-dependent welcome in movie list display (3:47)
Data-dependent link on single movie page (3:32)
ASSIGNMENT 4: Inserting dynamic data into the movie admin table
Assignment 4: Solution (2:57)
Dynamic data in users admin table (4:02)
Cross-browser compatibility check again (1:24)
Validate HTML again (2:00)
Format HTML source (12:15)
Essential jQuery and AJAX
Introduction to jQuery (4:56)
Install Firebug (1:06)
Basic jQuery syntax (4:44)
The jQuery 'this' selector (2:13)
Add/remove class and the dynamic event handler 'on' (4:21)
Retrieving and using HTML attributes (9:55)
One-way drag-and-drop effect using jQuery UI (6:50)
AJAX - Update database in the background with no page refresh (11:14)
ASSIGNMENT 5: The drag-to-delete AJAX call and PHP script
Assignment 5: Solution (8:10)
jQuery effects and AJAX interaction
Adapt JQuery for project (7:06)
Toggle background image on mouseover (2:02)
The click-to-add interface (7:05)
The drag-to-remove interface (4:16)
Load generic thumbnail image in case of missing image (2:02)
ASSIGNMENT 6: The add/remove interface for the single movie page
Assignment 6: Solution (7:41)
ASSIGNMENT 7: Data-dependent headings - Modify PHP
Assignment 7: Solution (2:38)
ASSIGNMENT 8: Data-dependent headings - jQuery
Assignment 8: Solution (7:10)
Visual enhancements and AJAX loader icon (12:14)
ASSIGNMENT 9: Visibility of admin and movie-goer menus
Assignment 9: Solution (3:26)
ASSIGNMENT 10: Conditional loading of Javascript files
Assignment 10: Solution (1:32)
Movie-goer deletion interface - preliminaries (4:00)
ASSIGNMENT 11: Movie-goer deletion interface
Assignment 11: Solution (2:38)
The movie deletion interface (3:40)
Add new user interface (1) (7:33)
Add new user interface (2) (6:53)
Delete newly inserted database records (4:16)
Escape HTML output in jQuery (4:42)
Add new movie interface (2:17)
Update existing user on the fly – Firstname (15:20)
ASSIGNMENT 12: Full jQuery update user interface
Assignment 12: Solution (6:17)
Update movie interface (2:49)
Catch browsers with Javascript disabled (7:50)
Online version and security considerations
Security considerations - prevent directory browsing (1:54)
Prevent directory browsing with .htaccess (2:52)
PHP redirect out of directories (1:53)
Accessing AJAX files through AJAX call only (1:55)
Uploading the project to a webhost (7:58)
Moving the database connection file out of web directory (5:13)
Course conclusion and ... what comes next
Course conclusion and ... what comes next (3:47)
User navigation - test if valid user set
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock