Ticker

6/recent/ticker-posts

Php login page project with source code

Php login page project with source code

Php login page project with source code
Creating a complete PHP login page involves multiple files and steps. Below is a simple example with source code for a basic PHP login page. This example assumes you have a database named "users" with a table named "user_info" that contains columns for "id," "username," and "password."
php login form source code free download
Php login page project with source code


1. Login And Registration Form Using Php & MySQL [Php Login System In Hindi]

login and registration form in php source code
Here is the description of the files and their functionality! config.php - Configure database login.php - Allows user to login register.php - Allows user to login welcome.php - If user was able to login redirect him to welcome page logout.php - Allows user to logout

1.Code config.php


<?php /* This file contains database configuration assuming you are running mysql using user "root" and password "" */ define('DB_SERVER', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', ''); define('DB_NAME', 'login'); // Try connecting to the Database $conn = mysqli_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME); //Check the connection if($conn == false){ dir('Error: Cannot connect'); } ?>



2. Code register.php


<?php require_once "config.php"; $username = $password = $confirm_password = ""; $username_err = $password_err = $confirm_password_err = ""; if ($_SERVER['REQUEST_METHOD'] == "POST"){ // Check if username is empty if(empty(trim($_POST["username"]))){ $username_err = "Username cannot be blank"; } else{ $sql = "SELECT id FROM users WHERE username = ?"; $stmt = mysqli_prepare($conn, $sql); if($stmt) { mysqli_stmt_bind_param($stmt, "s", $param_username); // Set the value of param username $param_username = trim($_POST['username']); // Try to execute this statement if(mysqli_stmt_execute($stmt)){ mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1) { $username_err = "This username is already taken"; } else{ $username = trim($_POST['username']); } } else{ echo "Something went wrong"; } } } mysqli_stmt_close($stmt); // Check for password if(empty(trim($_POST['password']))){ $password_err = "Password cannot be blank"; } elseif(strlen(trim($_POST['password'])) < 5){ $password_err = "Password cannot be less than 5 characters"; } else{ $password = trim($_POST['password']); } // Check for confirm password field if(trim($_POST['password']) != trim($_POST['confirm_password'])){ $password_err = "Passwords should match"; } // If there were no errors, go ahead and insert into the database if(empty($username_err) && empty($password_err) && empty($confirm_password_err)) { $sql = "INSERT INTO users (username, password) VALUES (?, ?)"; $stmt = mysqli_prepare($conn, $sql); if ($stmt) { mysqli_stmt_bind_param($stmt, "ss", $param_username, $param_password); // Set these parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Try to execute the query if (mysqli_stmt_execute($stmt)) { header("location: login.php"); } else{ echo "Something went wrong... cannot redirect!"; } } mysqli_stmt_close($stmt); } mysqli_close($conn); } ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <title>PHP login system!</title> </head> <body> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Php Login System</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="register.php">Register</a> </li> <li class="nav-item"> <a class="nav-link" href="login.php">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="logout.php">Logout</a> </li> </ul> </div> </nav> <div class="container mt-4"> <h3>Please Register Here:</h3> <hr> <form action="" method="post"> <div class="form-row"> <div class="form-group col-md-6"> <label for="inputEmail4">Username</label> <input type="text" class="form-control" name="username" id="inputEmail4" placeholder="Email"> </div> <div class="form-group col-md-6"> <label for="inputPassword4">Password</label> <input type="password" class="form-control" name ="password" id="inputPassword4" placeholder="Password"> </div> </div> <div class="form-group"> <label for="inputPassword4">Confirm Password</label> <input type="password" class="form-control" name ="confirm_password" id="inputPassword" placeholder="Confirm Password"> </div> <div class="form-group"> <label for="inputAddress2">Address 2</label> <input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor"> </div> <div class="form-row"> <div class="form-group col-md-6"> <label for="inputCity">City</label> <input type="text" class="form-control" id="inputCity"> </div> <div class="form-group col-md-4"> <label for="inputState">State</label> <select id="inputState" class="form-control"> <option selected>Choose...</option> <option>...</option> </select> </div> <div class="form-group col-md-2"> <label for="inputZip">Zip</label> <input type="text" class="form-control" id="inputZip"> </div> </div> <div class="form-group"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="gridCheck"> <label class="form-check-label" for="gridCheck"> Check me out </label> </div> </div> <button type="submit" class="btn btn-primary">Sign in</button> </form> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>


3.Code login.php


<?php //This script will handle login session_start(); // check if the user is already logged in if(isset($_SESSION['username'])) { header("location: welcome.php"); exit; } require_once "config.php"; $username = $password = ""; $err = ""; // if request method is post if ($_SERVER['REQUEST_METHOD'] == "POST"){ if(empty(trim($_POST['username'])) || empty(trim($_POST['password']))) { $err = "Please enter username + password"; } else{ $username = trim($_POST['username']); $password = trim($_POST['password']); } if(empty($err)) { $sql = "SELECT id, username, password FROM users WHERE username = ?"; $stmt = mysqli_prepare($conn, $sql); mysqli_stmt_bind_param($stmt, "s", $param_username); $param_username = $username; // Try to execute this statement if(mysqli_stmt_execute($stmt)){ mysqli_stmt_store_result($stmt); if(mysqli_stmt_num_rows($stmt) == 1) { mysqli_stmt_bind_result($stmt, $id, $username, $hashed_password); if(mysqli_stmt_fetch($stmt)) { if(password_verify($password, $hashed_password)) { // this means the password is corrct. Allow user to login session_start(); $_SESSION["username"] = $username; $_SESSION["id"] = $id; $_SESSION["loggedin"] = true; //Redirect user to welcome page header("location: welcome.php"); } } } } } } ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <title>PHP login system!</title> </head> <body> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Php Login System</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="register.php">Register</a> </li> <li class="nav-item"> <a class="nav-link" href="login.php">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="logout.php">Logout</a> </li> </ul> </div> </nav> <div class="container mt-4"> <h3>Please Login Here:</h3> <hr> <form action="" method="post"> <div class="form-group"> <label for="exampleInputEmail1">Username</label> <input type="text" name="username" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter Username"> </div> <div class="form-group"> <label for="exampleInputPassword1">Password</label> <input type="password" name="password" class="form-control" id="exampleInputPassword1" placeholder="Enter Password"> </div> <div class="form-group form-check"> <input type="checkbox" class="form-check-input" id="exampleCheck1"> <label class="form-check-label" for="exampleCheck1">Check me out</label> </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>

4.welcome.php


<?php session_start(); if(!isset($_SESSION['loggedin']) || $_SESSION['loggedin'] !==true) { header("location: login.php"); } ?> <!doctype html> <html lang="en"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <title>PHP login system!</title> </head> <body> <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> <a class="navbar-brand" href="#">Php Login System</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNavDropdown"> <ul class="navbar-nav"> <li class="nav-item active"> <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a> </li> <li class="nav-item"> <a class="nav-link" href="register.php">Register</a> </li> <li class="nav-item"> <a class="nav-link" href="login.php">Login</a> </li> <li class="nav-item"> <a class="nav-link" href="logout.php">Logout</a> </li> </ul> <div class="navbar-collapse collapse"> <ul class="navbar-nav ml-auto"> <li class="nav-item active"> <a class="nav-link" href="#"> <img src="https://img.icons8.com/metro/26/000000/guest-male.png"> <?php echo "Welcome ". $_SESSION['username']?></a> </li> </ul> </div> </div> </nav> <div class="container mt-4"> <h3><?php echo "Welcome ". $_SESSION['username']?>! You can now use this website</h3> <hr> </div> <!-- Optional JavaScript --> <!-- jQuery first, then Popper.js, then Bootstrap JS --> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> </body> </html>

5.logout.php


<?php session_start(); $_SESSION = array(); session_destroy(); header("location: login.php"); ?>

download full source code




Make sure to replace placeholder values in the code (such as database credentials) with your actual information. Also, this is a basic example and lacks security features such as password hashing and SQL injection prevention. In a real-world application, you should use prepared statements for database queries and store hashed passwords for better security.