Create User Registration and Login using PHP OOPs Concepts

Create Database and table

-- Database: `scholarship`
-- Table structure for table `students`
--
CREATE TABLE `students` (
  `id` int(11) NOT NULL PRIMARY KEY AUTO_INCREAMENT,
  `name` varchar(50) NOT NULL,
  `email` varchar(50) NOT NULL,
  `password` varchar(50) NOT NULL,
  `phone` varchar(50) NOT NULL,
  `registration_date` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Create Database Connection file using OOP Concepts

database.php

<?php
class Database{	
	protected $localhost = "localhost";
	protected $servername = "root";
	protected $password = "";
	protected $database = "scholarship";
	public $con;	
	
	public function connection(){
	    // Create connection
	    $this->con = new mysqli($this->localhost, $this->servername, $this->password, $this->database);
	    // Check connection
	    if ($this->con->connect_error) {
		die("Connection failed: " . $this->con->connect_error);
	    }
	    return $this->con;
	}
}
?>

Create User Registration or Sign Up For

index.php

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Create User Registration and Login using PHP Oops Concepts</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<?php
include_once "class/students.php";
$studentObj = new Students();
$success = "";
$error = "";
if (isset($_POST['submit'])) {
	$newdata['name'] = $_POST['name'];
	$newdata['email'] = $_POST['email'];
	$newdata['password'] = md5($_POST['password']);
	$newdata['phone'] = $_POST['phone'];
	$newdata['registration_date'] = date('Y-m-d');
	if (!$studentObj->isUserPhoneNumberExists($newdata['phone'])) {
	    if (!$studentObj->isUserExist($newdata['email'])) {
	       if ($studentObj->registration($newdata)) {
                 $success = "Your Registration Successfully Please login";
	       } else {
		  $error = "Registration failed please try again!";
	      }
	    } else {
	        $error = "Email already exists! Please try again.";
	    }
	} else {
	    $error = "Phone No. already exists! Please try again.";
	}
}
?>
<body class="hold-transition register-page">
   <div class="register-box">
      <div class="register-logo">
         <a href=""><b>Student</b> OSM</a>
      </div>
      <?php
         if (!empty($error)) {
         	echo "<div class='alert alert-danger alert-dismissible'>
                     <button type='button' class='close' data-dismiss='alert'>×</button>$error
                  </div>";
         } elseif (!empty($success)) {
         	echo "<div class='alert alert-success alert-dismissible'>
                     <button type='button' class='close' data-dismiss='alert'>×</button>$success
                  </div>";
         }
      ?>
      <div class="card">
         <div class="card-body register-card-body">
            <p class="login-box-msg">Registration a new Student</p>
            <form action="" method="post">
               <div class="input-group mb-3">
                  <input type="text" name="name" class="form-control" placeholder="Full name" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-user"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="email" name="email" class="form-control" placeholder="Email" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-envelope"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="password" name="password" class="form-control" placeholder="Password" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-lock"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="text" name="phone" class="form-control" placeholder="Phone Number" required="" maxlength="10">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-phone"></span>
                     </div>
                  </div>
               </div>
               <div class="row">
                  <div class="col-8">
                     <a href="login.php" class="text-center">Already have an account?</a>
                  </div>
                  <div class="col-md-4">
                     <input type="submit" name="submit" class="btn btn-primary btn-block" value="Sign Up">
                  </div>
               </div>
            </form>
         </div>
      </div>
   </div>
 </body>
</html>

Output

Create User Registration and Login using PHP OOPs Concepts

Create User Login or Signup Form

login.php

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Create User Registration and Login using PHP Oops Concepts</title>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<?php  
  
  include_once "class/students.php";
  if(isset($_SESSION['id'])) {
      header("Location:home.php");
  }
  $studentObj = new Students();
  
  $success = "";
  $error = "";
  if (isset($_POST['submit'])) {
      $newdata['email'] = $_POST['email'];
      $newdata['password'] = $_POST['password'];
      
      if ($studentObj->login($newdata)) {
          if (!isset($_SESSION['id'])) {
              header("Location:student_profile.php");
          } else {  
              header("Location:home.php");
          }
      }else{
          $error = "Incorrect Email or Password";
      }
    }
?>
<body class="hold-transition login-page">
   <div class="login-box">
      <div class="login-logo">
         <a href=""><b>Student</b> OSM</a>
      </div>
      <?php 
      if (!empty($error)){
          echo "<div class='alert alert-danger alert-dismissible'>
                  <button type='button' class='close' data-dismiss='alert'>×</button>$error
              </div>";   
        }
      ?>
      <div class="card">
         <div class="card-body login-card-body">
            <p class="login-box-msg">Sign in to start your session</p>
            <form action="" method="post">
               <div class="input-group mb-3">
                  <input type="text" name="email" class="form-control" placeholder="Email" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-envelope"></span>
                     </div>
                  </div>
               </div>
               <div class="input-group mb-3">
                  <input type="password" name="password" class="form-control" placeholder="Password" required="">
                  <div class="input-group-append">
                     <div class="input-group-text">
                        <span class="fa fa-lock"></span>
                     </div>
                  </div>
               </div>
               <div class="row">
                  <div class="col-8">
                     <div class="icheck-primary">
                        <a href="index.php" class="text-center">Don't have an account?</a>
                     </div>
                  </div>
                  <div class="col-4">
                     <input type="submit" name="submit" class="btn btn-primary btn-block" value="Sign In">
                  </div>
               </div>
            </form>
         </div>
      </div>
   </div>
  </body>
</html>

Output

Create User Registration and Login using PHP OOPs Concepts

Create a Students class file for function like Registration, login, email and phone number availability

students.php

<?php
session_start();
include_once "database.php";

class Students {

	public $studentTable;
	public $dbObj;
	public $con;

	public function __construct() {
	    $this->studentTable = "students";
	    $this->dbObj = new Database();
	    $this->con = $this->dbObj->connection();
	}

	/* student registration method */
	public function registration() {

	$name = $_POST['name'];
	$email = $_POST['email'];
	$password = md5($_POST['password']);
	$phone = $_POST['phone'];
	$registr_date = date('Y-m-d');		

	$query ="INSERT INTO $this->studentTable (name, email, password, phone, registration_date)
		VALUES('$name', '$email', '$password', '$phone', '$registr_date')";
	if ($this->con->query($query)) {
	    return true;
	} else {
	    return false;
	    }
	}

	/* student login method */
	public function login() {
	    $email = $_POST['email'];
	    $password = md5($_POST['password']);

	    $query = "SELECT * FROM $this->studentTable WHERE email = '$email' && password = '$password'";
	    $result = $this->con->query($query);
	    while ($student_data = $result->fetch_assoc()) {
		$_SESSION['id'] = $student_data['id'];
		$_SESSION['name'] = $student_data['name'];
	    }
	if ($result->num_rows > 0) {
	    return true;
	} else {
	    return false;
	    }
	}

	/* check If email is exists */
	public function isUserExist($email) {
    	     $query = "SELECT * FROM $this->studentTable WHERE email ='$email'";
	     $result = $this->con->query($query);
	 if ($result->num_rows > 0) {
	    return true;
	 } else {
	    return false;
	    }
	}


	/*check if phone number is exists */

	public function isUserPhoneNumberExists($phone){
	    $query = "SELECT * FROM $this->studentTable WHERE phone = '$phone'";
	    $result = $this->con->query($query);
	if ($result->num_rows > 0) {
            return true;
	}else {
            return false;
	  }
		  
	}
			
}

$studentObj = new Students();

Create logout page file for logout.

logout.php

<?php
session_start();
session_destroy();
session_unset($_SESSION['usre_id']);
session_unset($_SESSION['name']);
header("Location:login.php");

?>

You can always support by sharing on social media or recommending my blog to your friends and colleagues.  If you have any suggestions or problems about this tutorial, please comment on the  form below.😊

Create User Registration and Login using PHP OOPs Concepts

8 Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

  1. Usually I don’t learn post oon blogs, but І woulod ⅼike
    to say that tһіs wrіte-up very pressured me to take
    a look at and do sο! Ⲩoᥙr writing taste has Ьeen surprised mе.
    Thanks, very nice post.

  2. I think the admin of this website іs in fact working һard in support of һіs website,
    ɑѕ hеre every informɑtion is quality based data.