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)
Teach online with
Passing data to functions with parameters
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock