How to Create Login Form in PHP Page with MySQL Database?

03-Apr-2023

.

Admin

How to Create Login Form in PHP Page with MySQL Database?

Hi Dev,

This tutorial is focused on how to create login form in php page with mysql database. we will help you to give example of create login form using php. you will learn login form using php & mysql. let’s discuss about php login form using mysql database. Alright, let’s dive into the steps.

Simple login form in PHP with MySQL, bootstrap, session and server-side validation.

Step 1: Create a Database Connection File


In this step, you need to create a file name db.php and update the below code into your file.

The below code is used to create a MySQL database connection in PHP. When you need to insert form data into MySQL database, there you will include this file:

<?php

$servername='localhost';

$username='root';

$password='';

$dbname = "my_db";

$conn=mysqli_connect($servername,$username,$password,"$dbname");

if(!$conn){

die('Could not Connect MySql Server:' .mysql_error());

}

?>

Step 2: Create Login Page In PHP

You need to create a form, where you accept user email id and password. So you can create a login.php file and update the below code into your file.

The below code is used to show login form and authenticate the user with MySQL database in PHP.

<?php

session_start();

require_once "db.php";

if (isset($_SESSION['user_id']) != "") {

header("Location: dashboard.php");

}

if (isset($_POST['login'])) {

$email = mysqli_real_escape_string($conn, $_POST['email']);

$password = mysqli_real_escape_string($conn, $_POST['password']);

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {

$email_error = "Please Enter Valid Email ID";

}

if (strlen($password) < 6) {

$password_error = "Password must be minimum of 6 characters";

}

$result = mysqli_query($conn, "SELECT * FROM users WHERE email = '" . $email . "' and password = '" . md5($password) . "'");

if ($row = mysqli_fetch_array($result)) {

$_SESSION['user_id'] = $row['uid'];

$_SESSION['user_name'] = $row['name'];

$_SESSION['user_mobile'] = $row['mobile'];

$_SESSION['user_email'] = $row['email'];

header("Location: dashboard.php");

} else {

$error_message = "Incorrect Email or Password!!!";

}

}

?>

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Simple Login Form in PHP with Validation | Nicesnippets.com</title>

<link rel="stylesheet" type="text/css" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">

</head>

<body>

<div class="container">

<div class="row">

<div class="col-lg-10">

<div class="page-header">

<h2>Login Form in PHP with Validation</h2>

</div>

<p>Please fill all fields in the form</p>

<span class="text-danger"></span>

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post">

<div class="form-group ">

<label>Email</label>

<input type="email" name="email" class="form-control" value="" maxlength="30" required="">

<span class="text-danger"></span>

</div>

<div class="form-group">

<label>Password</label>

<input type="password" name="password" class="form-control" value="" maxlength="8" required="">

<span class="text-danger"></span>

</div>

<input type="submit" class="btn btn-primary" name="login" value="submit">

<br>

don't have account?<a href="registration.php" class="mt-3">Click Here</a>

</form>

</div>

</div>

</div>

</body>

</html>

Step 3: User Profile Page PHP File

You need to create a new file name dashboard.php and update the below code into your file.

The below code used to show logged in user data.

<?php

session_start();

if(isset($_SESSION['user_id']) =="") {

header("Location: login.php");

}

?>

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>User Info Dashboard | Nicesnippets.com</title>

<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet">

</head>

<body>

<div class="container">

<div class="row">

<div class="col-lg-8">

<div class="card">

<div class="card-body">

<h5 class="card-title">Name :- </h5>

<p class="card-text">Email :- </p>

<p class="card-text">Mobile :- </p>

<a href="logout.php" class="btn btn-primary">Logout</a>

</div>

</div>

</div>

</div>

</div>

</body>

</html>

I hope it could help you...

#PHP