Today I will share some simple User Registration & Login Script in MySQLi and PHP, and will also explain the basic functionality of registration and access secured area. With the help of this tutorial, the user can register, log in to member secured area, and logout.
I am using PHP 5.6 for this tutorial. I didn’t try this tutorial on PHP 7. Please make sure you are using PHP 5.6 to avoid any unwanted errors.
Steps for Simple User Registration & Login Script in MySQLi and PHP
- Create a Database
- Create a Database Table with mandatory Five Fields:
- id, username, email, password, trn_date
- Create a Registration Form
- Create a Login Form
- Connect to the Database by using PHP
- Authenticate Logged in User
- Create an Index Page
- Make a Dashboard Page
- Create a Log Out
- And Create a CSS File
1) Create a Database
To create a database, first, log in to PHPMyAdmin and click on the Database tab, after that, enter your database name and click on create database button or execute the below query. When I was doing it, I created a Database with the name register.
CREATE DATABASE register;
2) Creating a Database Table
To create a table, execute the below query in SQL.
CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `trn_date` datetime NOT NULL, PRIMARY KEY (`id`) );
3) Creating a Registration Form
Create a page with the name registration.php and enter the following code in it.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Registration</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <?php require('db.php'); // If form submitted, insert values into the database. if (isset($_REQUEST['username'])){ // removes backslashes $username = stripslashes($_REQUEST['username']); //escapes special characters in a string $username = mysqli_real_escape_string($con,$username); $email = stripslashes($_REQUEST['email']); $email = mysqli_real_escape_string($con,$email); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($con,$password); $trn_date = date("Y-m-d H:i:s"); $query = "INSERT into `users` (username, password, email, trn_date) VALUES ('$username', '".md5($password)."', '$email', '$trn_date')"; $result = mysqli_query($con,$query); if($result){ echo "<div class='form'> <h3>You are registered successfully.</h3> <br/>Click here to <a href='login.php'>Login</a></div>"; } }else{ ?> <div class="form"> <h1>Registration</h1> <form name="registration" action="" method="post"> <input type="text" name="username" placeholder="Username" required /> <input type="email" name="email" placeholder="Email" required /> <input type="password" name="password" placeholder="Password" required /> <input type="submit" name="submit" value="Register" /> </form> </div> <?php } ?> </body> </html>
4) Creating a Login Form
Create a page with the name login.php and paste the following code in it.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Login</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <?php require('db.php'); session_start(); // If form submitted, insert values into the database. if (isset($_POST['username'])){ // removes backslashes $username = stripslashes($_REQUEST['username']); //escapes special characters in a string $username = mysqli_real_escape_string($con,$username); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($con,$password); //Checking is user existing in the database or not $query = "SELECT * FROM `users` WHERE username='$username' and password='".md5($password)."'"; $result = mysqli_query($con,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; // Redirect user to index.php header("Location: index.php"); }else{ echo "<div class='form'> <h3>Username/password is incorrect.</h3> <br/>Click here to <a href='login.php'>Login</a></div>"; } }else{ ?> <div class="form"> <h1>Log In</h1> <form action="" method="post" name="login"> <input type="text" name="username" placeholder="Username" required /> <input type="password" name="password" placeholder="Password" required /> <input name="submit" type="submit" value="Login" /> </form> <p>Not registered yet? <a href='registration.php'>Register Here</a></p> </div> <?php } ?> </body> </html>
5) Connect to the Database
Create a page with name db.php and paste the below code in it.
<?php // Enter your Host, username, password, database below. // I left password empty because i do not set password on localhost. $con = mysqli_connect("localhost","root","","register"); // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } ?>
6) Authenticate Logged in User
Create a page with name auth.php and paste the below code in it.
<?php session_start(); if(!isset($_SESSION["username"])){ header("Location: login.php"); exit(); } ?>
7) Creating Index Page
Create a page with name index.php and paste the below code in it.
<?php //include auth.php file on all secure pages include("auth.php"); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Welcome Home</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <div class="form"> <p>Welcome <?php echo $_SESSION['username']; ?>!</p> <p>This is secure area.</p> <p><a href="dashboard.php">Dashboard</a></p> <a href="logout.php">Logout</a> </div> </body> </html>
8) Creating a Dashboard Page
Create a page with name dashboard.php and paste the below code in it.
<?php require('db.php'); include("auth.php"); ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Dashboard - Secured Page</title> <link rel="stylesheet" href="css/style.css" /> </head> <body> <div class="form"> <p>Dashboard</p> <p>This is another secured page.</p> <p><a href="index.php">Home</a></p> <a href="logout.php">Logout</a> </div> </body> </html>
9) Creating a Log Out
Create a page with the name logout.php and paste the following code in it.
<?php session_start(); // Destroying All Sessions if(session_destroy()) { // Redirecting To Home Page header("Location: login.php"); } ?>
10) Creating a CSS File
Create a page with name style.css and paste the below code in it.
body { font-family:Arial, Sans-Serif; } .clearfix:before, .clearfix:after{ content: ""; display: table; } .clearfix:after{ clear: both; } a{ color:#0067ab; text-decoration:none; } a:hover{ text-decoration:underline; } .form{ width: 300px; margin: 0 auto; } input[type='text'], input[type='email'], input[type='password'] { width: 200px; border-radius: 2px; border: 1px solid #CCC; padding: 10px; color: #333; font-size: 14px; margin-top: 10px; } input[type='submit']{ padding: 10px 25px 8px; color: #fff; background-color: #0067ab; text-shadow: rgba(0,0,0,0.24) 0 1px 0; font-size: 16px; box-shadow: rgba(255,255,255,0.24) 0 2px 0 0 inset,#fff 0 1px 0 0; border: 1px solid #0164a5; border-radius: 2px; margin-top: 10px; cursor:pointer; } input[type='submit']:hover { background-color: #024978; }
Note: In this tutorial, the CSS file is placed in the css/style.css folder. So make sure that you also put the CSS file in the same CSS folder.
If you found this tutorial helpful so share it with your friends, developers groups and leave your comment.
Also, read our previous blog- A Definite WordPress Themes Guide for Beginners