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 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 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 / problems about this tutorial, please comment on the form below.😊
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.
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.