In this tutorial; you will learn how to create a login and registration form in PHP and MySQL with xampp.
You can also download the complete source code of login and registration form in PHP + MYsql + Bootstrap using xampp from github.
How to Create Login and Registration Form in PHP and MySQL using XAMPP?
Here are steps to create simple registration and login form in PHP MySQL with validation:
- Step 1 – Open the XAMPP Control Panel & Create PHP Project
- Step 2 – Create Database and Table
- Step 3 – Create a Database Connection File
- Step 4 – Create a registration form and Insert data into MySQL database
- Step 5 – Create Login Form in PHP with MySQL
- Step 6 – Create User Profile and Fetch Data From MySQL Database
- Step 7 – Create Logout.php file
Step 1 – Open the XAMPP Control Panel & Create PHP Project
Visit your xampp installed directory. Then open xampp control panel and start it; then visit xampp/htdocs directory. And inside this directory create php project directory.
Step 2 – Create Database and Table
Create a database name my_db and execute the below-given query in your database. The below query will create a table named users in your database with the following fields like uid, name, email, mobile:
CREATE DATABASE my_db; CREATE TABLE `users` ( `uid` bigint(20) NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` varchar(255) DEFAULT NULL, `email` varchar(255) DEFAULT NULL, `mobile` varchar(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Step 3 – Create a Database Connection File
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 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 4 – Create registration form and Insert data into MySQL database
Create registration form file; which name registration.php. And add the following code into it:
<?php require_once "db.php"; if(isset($_SESSION['user_id'])!="") { header("Location: dashboard.php"); } if (isset($_POST['signup'])) { $name = mysqli_real_escape_string($conn, $_POST['name']); $email = mysqli_real_escape_string($conn, $_POST['email']); $mobile = mysqli_real_escape_string($conn, $_POST['mobile']); $password = mysqli_real_escape_string($conn, $_POST['password']); $cpassword = mysqli_real_escape_string($conn, $_POST['cpassword']); if (!preg_match("/^[a-zA-Z ]+$/",$name)) { $name_error = "Name must contain only alphabets and space"; } 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"; } if(strlen($mobile) < 10) { $mobile_error = "Mobile number must be minimum of 10 characters"; } if($password != $cpassword) { $cpassword_error = "Password and Confirm Password doesn't match"; } if(mysqli_query($conn, "INSERT INTO users(name, email, mobile_number ,password) VALUES('" . $name . "', '" . $email . "', '" . $mobile . "', '" . md5($password) . "')")) { header("location: login.php"); exit(); } else { echo "Error: " : "" . mysqli_error($conn); } mysqli_close($conn); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Simple Registration Form in PHP with Validation | Tutsmake.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 col-offset-2"> <div class="page-header"> <h2>Registration Form in PHP with Validation</h2> </div> <p>Please fill all fields in the form</p> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="post"> <div class="form-group"> <label>Name</label> <input type="text" name="name" class="form-control" value="" maxlength="50" required=""> <span class="text-danger"><?php if (isset($name_error)) echo $name_error; ?></span> </div> <div class="form-group "> <label>Email</label> <input type="email" name="email" class="form-control" value="" maxlength="30" required=""> <span class="text-danger"><?php if (isset($email_error)) echo $email_error; ?></span> </div> <div class="form-group"> <label>Mobile</label> <input type="text" name="mobile" class="form-control" value="" maxlength="12" required=""> <span class="text-danger"><?php if (isset($mobile_error)) echo $mobile_error; ?></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"><?php if (isset($password_error)) echo $password_error; ?></span> </div> <div class="form-group"> <label>Confirm Password</label> <input type="password" name="cpassword" class="form-control" value="" maxlength="8" required=""> <span class="text-danger"><?php if (isset($cpassword_error)) echo $cpassword_error; ?></span> </div> <input type="submit" class="btn btn-primary" name="signup" value="submit"> Already have a account?<a href="login.php" class="btn btn-default">Login</a> </form> </div> </div> </div> </body> </html>
Step 5 – Create Login Form In PHP with MySQL
Create login form, where you accept user email id and password and authenticate users from database. So you can create a login.php file and add the below code into your file:
<?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 pass = '" . md5($password). "'"); if(!empty($result)){ if ($row = mysqli_fetch_array($result)) { $_SESSION['user_id'] = $row['uid']; $_SESSION['user_name'] = $row['name']; $_SESSION['user_email'] = $row['email']; $_SESSION['user_mobile'] = $row['mobile']; 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 | Tutsmake.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> <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"><?php if (isset($email_error)) echo $email_error; ?></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"><?php if (isset($password_error)) echo $password_error; ?></span> </div> <input type="submit" class="btn btn-primary" name="login" value="submit"> <br> You don't have account?<a href="registration.php" class="mt-3">Click Here</a> </form> </div> </div> </div> </body> </html>
Step 6 – Create User Profile and Fetch data From Database
Create a new file name dashboard.php and add the below code into your file.
The below code used to show logged in user data.
<?php session_start(); if(isset($_SESSION['user_login_id']) =="") { header("Location: login.php"); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>User Info Dashboard | Tutsmake.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 :- <?php echo $_SESSION['user_name']?></h5> <p class="card-text">Email :- <?php echo $_SESSION['user_email']?></p> <p class="card-text">Mobile :- <?php echo $_SESSION['user_mobile']?></p> <a href="logout.php" class="btn btn-primary">Logout</a> </div> </div> </div> </div> </div> </body> </html>
Step 7 – Create Logout.php file
Create logout.php file and update the below code into your file.
The below code is used to destroy login your data and logout.
<?php ob_start(); session_start(); if(isset($_SESSION['user_login_id'])) { session_destroy(); unset($_SESSION['user_id']); unset($_SESSION['user_name']); unset($_SESSION['user_email']); unset($_SESSION['user_mobile']); header("Location: login.php"); } else { header("Location: login.php"); } ?>
Conclusion
Simple login and registration form in php with mysql database using xampp; In this tutorial, you have learned how to create a simple login, registration and logout system in PHP MySQL with validation. Also, you have learned how to authenticate and logout logged in users in PHP.
Recommended PHP MySQL Tutorials
If you have any questions or thoughts to share, use the comment form below to reach us.