Hackr.io is a community to find and share the best online courses & tutorials. Join them, it only takes 30 seconds.

Here's how it works:


Anybody can submit a course or a tutorial


Community upvotes the useful tutorials


The best tutorials rise to the top

PHP for Beginners (udemy.com)

Visit Tutorial
My Courses
Paid Video Beginner
Top Three Medal #2 out of total 29 PHP tutorials & courses

Why developers like this tutorial (one-liner reviews):

Qualified Instructor

Video quality

Content quality

Course Pace

Course depth and Coverage

Add your one-liner review here:

Tutorial Info

Self Paced
37 hours on-demand video
Available On Completion
Submitted by:
Visit Tutorial

Tutorial Details

What you'll learn

  • You will learn to create a (CMS) Content Management System like WordPress, Drupal or Joomla
  • You will learn how to use Databases
  • You will learn MySQL
  • Object Oriented Programming
  • You will learn how to launch your application online
  • How to use forms to submit data to databases
  • How to use AJAX to submit data to the server without refreshing the page
  • You will learn about PHP security
  • You will learn about sessions
  • Password hashing
  • Email sending
  • You will learn to use composer (PHP package manager)
  • You will learn to create clean URL's and remove the .php from files
  • You will learn to use bootstrap by getting experience from the project
  • You will learn to debug your code
  • You will learn to create pagination
  • You will code refactoring
  • You will learn to debug (fix your code)
  • You will learn to use an API to bring data from a database to a graphical interface
  • There is so much more and my hands are just tired of typing :)


  • Some HTML is needed for this course (You can get my free HTML course on that)




One of the biggest PHP Courses in UDEMY ........

Best Rated PHP course on UDEMY......

New lectures ADDED all the time.....

Over 29,000 Students taking this course already.........

BEST Reviewed PHP beginners course for a reason.....


Are you new to PHP or need a refresher? Then this course will help you get all the fundamentals of Procedural PHP, Object Oriented PHP, MYSQLi and ending the course by building a CMS system similar to WordPress, Joomla or Drupal.

Knowing PHP has allowed me to make enough money to stay home and make courses like this one for students all over the world. Being a PHP developer can allow anyone to make really good money online and offline, developing dynamic applications.

Knowing PHP will allow you to build web applications, websites or Content Management systems, like WordPress, Facebook, Twitter or even Google.

There is no limit to what you can do with this knowledge. PHP is one of the most important web programming languages to learn, and knowing it, will give you SUPER POWERS in the web development world and job market place.


Because Millions of websites and applications (the majority) use PHP. You can find a job anywhere or even work on your own, online and in places like freelancer or Odesk. You can definitely make a substantial income once you learn it.

Some of my students reviews for this course and others

Holy cr*********

Readed some books about PHP but it was such boring that i never finished a book and withhold me from learning, this course helped me out straight.. After seeing a free tut on youtube i subscribed the course and jeez, i don't even need goals to get or stay motivated cause i have the instructor: Edwin Diaz, his way of teaching is friggin awesome (and fun) and easy listening! To be honest its keeping me away from bed xD.. I really really love the course. If i need to describe the course from my personal view, one word: Epic! Really looking forward for the stuff that will be added in the future! Great job and thumbs up! Greetings from a Dutchy

Best PHP course************

This course is just awesome. You will learn the basics and then you will jump to making your own CMS. Every little piece of code is described very well, so you exactly know, what you are doing. After finishing this course I was ready to make my own social networking site and that's amazing isn't it? Another great part of this course is its instructor, who helps you with every issue you have in short time. I've have already done many internet courses, but this is definetly the best one.

The Best Php course made FUN and EASY worth The Money!!! *************

Hi Edwin You have made 'learning PHP very fun an easy to follow. I got so many ideas that I want to do and had been searching around for 3 years now looking for the right course and lecturer that will help me fulfill my dream. I want to thank you that I have gone through more than half of your online course now and I am still interested to complete it. Thank you for your motivation and kind words. It what keeps me going and I know that once I finish this, I will be able to achieve my goal. I believe that your course is the key to my success in fulfilling my dream. AND the best part is the Lecturer always replies to your questions

The best course I have taken so far ***************

Every programming course I have taken until now has been extremely boring and I found it difficult to concentrate, but your course was clear, entertaining and kept me hooked till the very end. I remember everything I learnt in your course and have gained a deeper understanding of terms and methodologies that seems incomprehensible until now. Thank you

***************************End of Reviews ***********************

My Promise to You

I created this course not just to make money but to teach you the knowledge that will help you with PHP since I was in your shoes some years ago. If you need support, I will be just a message or an email away. I love what I do, but most importantly I love when my students succeed and that for me is priceless. You success depends on yours and I will make sure with that you get all the help you need when you need it.

I will not bore you :)

I take my courses very seriously but at the same time I try to make it fun since I know how difficult learning from an instructor with a monotone voice or boring attitude is. This course is fun, and when you need some energy to keep going, you will get it from me.

My Approach

Practice, practice and more practice. Every section inside this course has a practice lecture at the end, reinforcing everything with went over in the lectures. I also created a small application the you will be able to download to help you practice PHP. To top it off, we will build and awesome CMS like WordPress, Joomla or Drupal.

Your $ invested in this course will be multiplied over and over again

With over 176 lectures and over of 20 hours of PURE PHP knowledge from the real world, you can bet, your money will be well spent in this course. If these are not enough reasons for you to jump into this course, consider that I update the course with lectures all the time by students requests and by adding new features to the CMS project.

100% Money Back if you don't like it

With 100% money guaranteed within 30 days, you have NOTHING to lose and a world of possibilities for your future. If for some reason you don't like the course or me, you can get your money back from Udemy.

Commonly Asked Questions.....

Q: Is PHP worth it to learn?


PHP is one of the best web programming languages in the world, and all the large important websites, like Google, Apple, Facebook, Yahoo, Wikipedia and many more use it for their web applications.

Q: Can I make Money if I know PHP?

A: LOTS of it

Go over to freelancer dot com and search for PHP projects. You will see so many projects waiting for people to finish them in that site. There are actually more projects in PHP than in any other language.

This PHP Course Covers the following and then some...

  • Databases in PHP
  • Object Oriented PHP
  • CMS project-similar to (Wordpress)
  • Form Submissions in PHP
  • Security in PHP
  • Variables in PHP
  • Math in PHP
  • Arrays in PHP
  • Control Structures in PHP
  • Comparison Operators in PHP
  • Mayor Loops in PHP
  • Functions in PHP
  • Constants in PHP
  • Super Globals in PHP
  • Sessions in PHP
  • Cookies in PHP
  • Learn to work with FILES
  • Custom search feature
  • Authentication
  • Learn to use jQuery + Bootstrap
  • RealTime Notifications with JS
  • Protect your credentials with .ENV
  • Learn Composer (PHP dependency Manager)
  • Learn to send emails - from PHP or using a third party Package
  • And much much more .....

With the AMAZING project we build, you will learn all the SKILLS to land that job or project. This is a real project that we take online and I walk step by step on everything from scratch.

Please look at all the lectures to see more things that are covered.

Who is the target audience?
  • This course is meant for TOTAL beginners in PHP
  • No programming experience is needed at all


The First Steps


Course Overview

Local Development Environment Tools

Course Exercise / Reference Files

Code Editor Installation (Optional if you have one)

Embedding PHP in HTML

Using Dynamic Data

Inserting Comments in PHP

Practice Section 1

Data Types and More

Variables in PHP



Associative Arrays

Practice Section 2

First steps

Control Structures

if Statements

Comparison and Logical Operators

Switch Statements in PHP

While Loop in PHP

For Loop in PHP

Foreach Loop in PHP

Practice Section 3

Control Structures Quiz

Custom Functions

Defining functions

Function Parameters

Return Values From Functions

Global Variable and Scope


Practice Section 4

PHP Built-in Functions

Math Functions

String Functions

Array Functions

Practice Section 5

How To Use Form Data in PHP

Checking for Form Submission

Extracting Information from form

Validating The Form Values

External Page Submission

Practice Section 6

How To Use Databases in PHP

Introduction to Databases

Introduction to PHPmyadmin

Creating a Database in PHPmyadmin

Creating Tables and Inserting Data in PHPmyadmin

Markup for Login Page

Receiving Post Data From Check

Connecting to the Database using PHP

Creating Records into the database table with PHP

Reading Information in the Database with PHP

Creating the Update Records Form

Fixing Name Attribute Value

Query to Read Id's

Query to Update Username and Password

Refactoring The Update Query into a Function

Delete Records From Database with PHP

ReFactoring all Database Query Code into Functions

Making All Files Modular and Refactoring

Practice Section 7

PHP Security

SQL Injection - How to Prevent it

Password Encryption

Practice Section 8

PHP and The Web

Introduction to HTTP Requests and more

Using The GET super Global

Using the Post Super Global

About Cookies in PHP

Setting Cookies with PHP

Reading Cookies in PHP

How use Sessions in PHP

Practice Section 9

Object Oriented PHP Introduction

What are classes and objects ? Introduction

What are classes and how to define them in PHP

What are class methods and how to create them

How to instantiate a class

Adding Properties to Our Class

Class inheretance


Data Access

Static Data in Classes

Practice Section 10

Working with files

Opening and creating files

Writing to files

Reading files

Deleting files

CMS Project / Blogging System - Front End and First Steps

Intro Tour of the CMS

Turning On Some Important Features

Adding our assets / working structure

Creating database and category table for the CMS

Connecting to the database with PHP

Making our files reuseable

Inserting Data into Category Table and Displaying it

Creating the posts table

Post Comment Count Update ( Edwin from the future )

Inserting Data into the posts table and displaying it

Inserting the post image and displaying it

Creating a custom search engine part 1

Creating a custom search engine part 2

Creating a custom search engine part 3

Adding Categories to the sidebar

CMS - Categories & More...

Creating reuseable code in the admin

Creating the navigation links in admin

Creating the admin category page part 1

Creating the admin category page part 2

Displaying data in category page

Adding Categories

Adding a special Function to our header file

Deleting Categories

Updating or Editing Categories part 1

Updating or Editing Categories part 2

Refactoring category code part 1

Refactoring category code part 2


Creating a HTML table in admin to display a list of posts

Displaying posts list in admin

Including Pages based on condition technique

Creating Post HTML form in admin

Inserting Post Data From admin

Deleting Posts in admin

Creating the HTML edit form post page

Displaying the Edit Data in Post Edit Page

Dynamic Category Editing / Image Display

Finally Updating Posts

Relating Categories to posts and Displaying it

Adding Category Dropdown to the Add Post Page

Adding Individual Post Page and Link

Creating the category page

Setting up some links and making an excerpt


Creating the comments table and inserting data

Creating the comments page and HTML form in admin

Creating the Query for displaying comments in admin part 1

Creating the Query for displaying comments in admin part 2

Inserting new fields in Front end comment form and testing it

Creating the Frond End comment insert query

Finishing the query to send comment data (Front end)

Relating Comments to posts

Deleting comments

Approving and unapproving comments

Displaying comments based on approval

Increasing comments count

Adjustments to visual for comments

Adjustments for comments and Displaying Post Based on Status


Creating the users table and data insert

Creating users pages and links

Modifying user table heading

Creating the display query for users

Displaying users in admin

Adding users in admin part 1

Adding users in admin part 2

Adding users in admin part 3

Adding users in admin part 4 and final

Deleting users

Changing user roles

Setting Up the Edit User Page

Displaying User Values in Edit Page

Adding Select Options to User Role

Updating User

CMS - Login

Creating the login form

Making the login page

Select User Query

Validating User Query Front End

Setting Values with Sessions

Validating User Admin

Logout Page Improved Validation

Login improved- Edwin from the Future

CMS - Profile

Creating the Profile Page

Displaying User Data

Updating User Data

CMS - Dashboard

Adding Widgets

Posts Dynamic Data in Widget

Using Dynamic Data in all Widgets

Adjusting Widget Links

Adding an AWESOME Chart to admin

Cleaning up the chart a little

Displaying Dynamic Data in chart part 1

Displaying Dynamic Data in chart part 2

Improving Our CMS

Adjusting post echo

Removing Read More Button

Adding Notification to Add User Page

CMS -Extra Features

Adding Dynamic Category Selection for Edit Post Page

Adding extra element to dashboard

Adding the WYSIWYG Editor

Adding Links to Post Images and Read More Button

Adding Post Update Notification

Adding Post Edit Link in Front End

Adding Bulk Options Posts, part 1

Adding Bulk Options Posts, part 2

Adding Bulk Options Posts, part 3

Adding Bulk Options Posts, part 4

Adding Bulk Options Posts, part 5

Adding Bulk Options Posts, part 6

Adding Dropdown Option for Add Post Page

Adding Post Creation Notice to Add Post Page

Adding Link to Add New Button in Post Page

Adding Link to View Posts from Admin

Adding Dynamic Personalization to Admin

Adding Validation to Comments in Post Page

CMS -Extra Features - User Registration

Downloading & Placing Form Markup

Testing Registration Form

Extracting Form Values and Escaping

Starting Query and Default Tables Values

Fetching our Database for Default Values

Registering Users

Validating Fields

Encrypting User Passwords

Updating Our CMS due to password Encryption

User Page Display Shorter Password Field

User Page Dropdown Default Value Change

PHP and Javascript Confirm Before Action

Get Your Certificate

Wrapping this up! (IMPORTANT)

Make your Feature requests here!

CMS-Extra Features - Author Related Posts

Relating Posts to their Authors Part #1

Relating Posts to their Authors Part #2

Cloning Posts NEW feature - COOL STUFF :)

Adding a LOADER to the CMS Admin

Adding views functionality to posts

Resetting Views Feature


Pagination Intro and Part 1

Pagination Intro and Part 2 - Links and Get Request

Pagination Intro and Part 3 - Get Request Processing

Pagination Intro and Part 4 - Assigning a variable to the per page value

Pagination Intro and Part 5 - Adding Some Style to Current Page :)

CMS - Extra Features - Users ONLINE

Creating the user online table and Setup

Creating the PHP code and Queries

Displaying Users Online :)

Displaying Users Online in Navigation

Instant Users Online count without refreshing part 1

Instant Users Online count without refreshing part 2

CMS- Extra Feature - NEW Simple Password Encrypting and Login System

Explanation of new New function and Implementation

Login in Users with new System

Adding New System to Add Users in Admin

Adding new password system to edit user page part 1

Adding new password system to edit user page part 2

Cleaning Up Edit User Page

CMS - Extra Feature - Improved Comment system count and diplay

Comment count and amount display

Creating a link in comment count and sending a GET Request

Comments page to specific posts

Deleting in the same page

CMS - Extra Feature - Post for Specific User in admin

Part 1 - Add Page

Part 2 - Insertion

Part 3 - Fixing User Display Issue

Part 4 - Edit Post Page Update

Part 5 - Upgrading Front End

CMS - More Security

URL and MySQL Injection Protection

Taking the Project to the Internet.

WARNING BEFORE GOING ONLINE - Edwin from the future

Hosting Setup

Displaying errors online

Uploading files

Creating the Online Database

Importing database

Fixing access to application!

Getting the right PHP online version (FIXED)

Sending Emails

Creating a contact page

Uploading Contact page

Sending emails

Modifying Email Headers

Bootstrap Modal Delete Confirm Feature


Creating the markup

Writing the code

No posts or category message feature


No posts feature home page

No categories feature

Don't show draft to visitors but everything to admin

Applying functionality to mayor pages

Some miscellaneous features

Active navigation links

Login form visibility when logged in or logged out

Having fun with bugs

Duplicate category improvement

Fixing bug in our edit post javascript editor

Cloning empty fields and table shifting fix

Refactoring part 1

Refactoring index in admin part 1

Refactoring index in admin part 2

Refactoring our view all posts by JOINING TABLES part 1

Refactoring our view all posts by JOINING TABLES part 2

New registration system

Create a better admin detection feature

Duplicate username function

Duplicate email function

Validation for registration

Setting up our Login user function

Adding some user friendly code

Displaying inline errors in form

Registering users with the new function

Login users with the new function

Deleting via POST

Adding Prepare statements to our application for security

Fetching posts in the category page using prepared statements part 1

Fetching posts in the category page using prepared statements part 2

Fetching posts in the category page using prepared statements part 3

Inserting categories with prepare statements

Updating categories with prepare statements

Closing statements

CMS Extra feature - Pretty URL's


Turning on the rewrite engine

Rewriting index, contact and registration

Rewriting post page and query string

Rewriting category page and fixing links

CMS Extra Feature - Forgot Password System

Intro to what we are building

Creating some helper functions for the new system

Restructuring login page

Creating the forgot password page

Forgot password - checking form values

Updating database with token values

CMS Extra Feature - Forgot Password System - Sending Email


Download all the files needed

Installing third party library with composer

Sending email

Autoloading classes and setting up UTF-8 for emails

Sending code over email

Creating the reset page

Pulling data and testing it

Unique database values

Updating password and token columns

Making it everything work

Update search feature to work with the forgot password system code

Data based on current user!

Image fallback and comment display fix!

CMS Extra Feature - Realtime Notifications with Pusher


Downloading Pusher and fixing random bug

Writing our first PHP code with the package

Getting our first Notification

Using a Library to make Notification POP-UPS

Protecting credentials - Part 1

Protecting credentials - Part 2 - Finished

CMS Extra Feature - POST LIKES

What we are creating?

Creating the like button

Attaching the click event to the button

Setting up the Like AJAX request

Fetching the Posts

Updating post with Likes

Creating our first Like

Unliking Posts

Creating a helper function to the get the Logged-in User id - part 1

Creating a helper function to the get the Logged-in User id - part 2

Creating a helper function to detect if the user likes a specific post

Updating our Like button to be more dynamic

Fetching all Likes in the Post

Finishing Likes

Let's add a Tooltip Feature

CMS Extra Feature - Creating A Separate Admin for Logged In Users


Refactoring dashboard a little with some helper functions

Getting all the User's posts

Getting all the User's comments

Getting all the User's categories

Getting all the User's published and draft posts

Getting all the User's post approved and unapproved comments

Discuss this tutorial:

Ask a question or write your feedback/review of this course or tell anything to the people taking this course.

Kickstart the conversation!

More PHP Tutorials