Basic Authentication with PHP & MySQL


Lately, I have been receiving a lot of emails on how to create a basic login and registration system by using plain PHP and MySQL. I have made this series just to teach you about the Basic Authentication, i.e. registering a user into the database and then logging the user to the system. We will also encrypt the password using PHP’s native function which uses the Bcrypt Algorithm. In a nutshell, this series will contain seven videos. What will you learn? At the end of this series, you will learn to create a basic authentication system for your application using PHP and MySQL.

  1. Create Database Schema and Folder Structure
  2. Create a Simple Login Page
  3. Create a Simple Registration Page
  4. Create Connection with the database
  5. Register User in the Database
  6. Authenticate User into the System
  7. Securing Pages from Invalid User

Create Database Schema and Folder Structure

Step 1. Create a Database with the name tutorials

create-database

Step 2. Create a table inside the tutorials database with the name t_login

--
-- Table structure for table `t_login`
--

CREATE TABLE `t_login` (
 `id` int(11) NOT NULL,
 `username` varchar(50) NOT NULL,
 `password` varchar(500) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

--
-- Indexes for dumped tables
--

--
-- Indexes for table `t_login`
--
ALTER TABLE `t_login`
 ADD PRIMARY KEY (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `t_login`
--
ALTER TABLE `t_login`
 MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;

Step 3. Create Folder Structure to work with

folder structure

Create a Simple Login Page

Create a Simple Registration Page

 

Create Connection with the Database

The above code is used to create connection with the database. It uses PDO class, the PHP Data Objects (PDO) extension defines a lightweight, consistent interface for accessing databases in PHP. Each database driver that implements the PDO interface can expose database-specific features as regular extension functions. It is the preferred way for making connection to the database.

In this class, we create a constructor which holds the code for making connection to the database. As soon as the object of this class is created, it gets initialized and a connection to the database is made. A separate class for holding database connection and all the related business logic helps to maintain the modularity of the application.

Register User in the Database

Create a file with the name registerUser.php. The registerUser.php file lies inside process folder. This file is responsible for receiving the data sent from the registeration form with the help of $_POST superglobal variable. We pass the name of the input field we want to fetch the data from and save it to its corresponding variable.

Then we load the DBConnect.php class which resides inside classes folder and create its object. We use the object to access the function that we created inside of the DBConnect class.

Authenticate User into the Database System

Create a file named authUser.php inside your process folder and copy the code from the video in it.

Conclusion

I hope you learned the basic authentication successfully. If you have any problem or any query, then you may comment below. I will be very active to solve any of your queries and help you grasp each and every part of it.

For full tutorial series, visit our youtube channel, and don’t forget to subscribe.

If this article solved your query then share your token of love 🙂



One Life, Rise & Shine
Cheers 🙂


  • Article By: Varun Shrivastava

  • Varun Shrivastava is an innovative full stack web developer. He is a passionate blogger and loves to write about philosophy, programming, tech and relationships. He works as a Software Developer. This is his den, you can get in touch with him here anytime you want.
  • Website Search
  • Free Ebook Download ($7.06 Value)



  • Grab the Deal Now!

    Hostgator  Starting @$3.95/mo

  • DigitalOcean Free Credits!

    DigitalOcean Credit Sqare Banner

%d bloggers like this: