Cara menggunakan login oop php mysqli

Dalam tutorial Cara Membuat Form Login dengan OOP (Object Oriented Programming) PHP & MySQL, kita akan belajar membuat halaman login untuk website dengan menggunakan OOP PHP Session. Tutorial ini merupakan tutorial tingkat dasar, sederhana dan mudah untuk diikuti.

Show

Form login merupakan salah satu fitur yang berguna untuk memastikan bahwa sebuah sistem hanya bisa digunakan oleh pengguna yang berhak menggunakan aplikasi tersebut.

Membuat Database Dan Tabel

Pada tahap ini kita akan membuat sebuah database untuk menyimpan data pengguna yang bisa login aplikasi dengan field field sebagai berikut :

-- phpMyAdmin SQL Dump
-- version 3.5.2
-- https://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Apr 09, 2017 at 04:06 PM
-- Server version: 5.5.25a
-- PHP Version: 5.4.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Database: `admin_oop`
--

-- --------------------------------------------------------


--
-- Table structure for table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id_users` int(3) NOT NULL AUTO_INCREMENT,
  `nama_users` varchar(30) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(100) NOT NULL,
  `level` enum('admin','user') NOT NULL DEFAULT 'user',
  PRIMARY KEY (`id_users`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id_users`, `nama_users`, `username`, `password`, `level`) VALUES
(1, 'Sigit Dwi Prasetyo', 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin'),
(2, 'Ghaluh Ayu', 'ghaluh', '9c1c10b9c3555d9476bb23190f14154c', 'admin'),
(3, 'Andriyanto', 'andri', '21232f297a57a5a743894a0e4a801fc3', 'admin');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Berikut ini tampilan form login dan user yang mempunyai akses login :

Cara menggunakan login oop php mysqli

Cara menggunakan login oop php mysqli

Berikut adalah sourcecode & live demo Form Login dengan OOP (Object Oriented Programming) PHP & MySQL

   DOWNLOAD SOURCECODE

Sekian dulu tutorial Cara Membuat CRUD Sangat Sederhana Dengan OOP (Object Oriented Programming) PHP Dan MySQL. Semoga bermanfaat dalam proyek PHP Anda

PHP Merupakan bahasa pemrograman web yang paling populer dewasa ini. banyak yang bisa dilakukan oleh php, mulai dari koneksi ke berbagai macam database manajemen system (DBMS) misal MySQL. disamping itu PHP 5 keatas sudah mendukung yang namanya pemrograman berorientasi objek. nah dalam postingan kali ini kita akan membahas bagaimana cara membuat sebuah form login dengan menggunakan PHP Object Oriented.

1. Langkah pertama : Buatlah file dan direktori sebgai beriku

——-[dir]includes——
config.php
function.php
——[/dir]includes——
login.php
home.php


2. Langkah berikutnya : Masukkan kodingan seoperti dibawah ini :


Membuat file koneksi ke database :
———————————-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

define('DB_SERVER', 'localhost');   //define your db server here
define('DB_USERNAME', 'root');      //define your db user here
define('DB_PASSWORD', '');          //define your db pass here
define('DB_DATABASE', 'rai');       //define your db name here
 
class DB_class {
    //put your code here
    function __construct()
    {
        $connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or
        die('Oops connection error -> ' . mysql_error());
        mysql_select_db(DB_DATABASE, $connection)
        or die('Database error -> ' . mysql_error());
    }
}
?>

' . mysql_error()); mysql_select_db(DB_DATABASE, $connection) or die('Database error -> ' . mysql_error()); } } ?>

 


membuat file class user untuk dengan fungsi registrasi dan cek login
——————————————————————–

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

include_once 'config.php';
 
class User
{
    //Database connect
    public function __construct()
    {
    $db = new DB_Class();
    }
    //Registration process
    public function register_user($username, $email, $password, $full_name, $no_hp, $website )
    {
        $password = md5($password);
        $sql = mysql_query("SELECT user_id from user WHERE username = '$username' or email = '$email'");
        $no_rows = mysql_num_rows($sql);
        if ($no_rows == 0)
        {
            $result = mysql_query("INSERT INTO user(username, email, password, full_name, no_hp, website)
                                   values ('" . mysql_real_escape_string($username)."',
                                           '" . mysql_real_escape_string($email)."',
                                           '" . mysql_real_escape_string($password)."',
                                           '" . mysql_real_escape_string($full_name)."',
                                           '" . mysql_real_escape_string($no_hp)."',
                                           '" . mysql_real_escape_string($website)."'
                                           )") or die(mysql_error());
            return $result;
        }
        else
        {
            return FALSE;
        }
    }
    // Login process
    public function check_login($emailusername, $password)
    {
        $password = md5($password);
        $result = mysql_query("SELECT user_id from user WHERE email = '$emailusername' or username='$emailusername' and password = '$password'");
        $user_data = mysql_fetch_array($result);
        $no_rows = mysql_num_rows($result);
        if ($no_rows == 1)
        {
            $_SESSION['login'] = true;
            $_SESSION['user_id'] = $user_data['user_id'];
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
}
?>

 


membuat action handle sekaligus form untuk login :
————————————————–

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

session_start();
include_once 'includes/functions.php';
$user = new User();
 
if ($user->get_session())
{
    header("location:home.php");
}
 
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
    $login = $user->check_login($_POST['emailusername'], $_POST['password']);
    if ($login)
    {
        // Login Success
        header("location:login.php");
    }
    else
    {
        // Login Failed
        $msg= 'Username / password wrong';
    }
}
?>
                
Email or Username :
Password :
Don't have account? : Register Now

get_session()) { header("location:home.php"); } if ($_SERVER["REQUEST_METHOD"] == "POST") { $login = $user->check_login($_POST['emailusername'], $_POST['password']); if ($login) { // Login Success header("location:login.php"); } else { // Login Failed $msg= 'Username / password wrong'; } } ?>

Email or Username : Password : Don't have account? : Register Now

 


membuat halaman ketika sudah login
———————————-

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

 
session_start();
include_once 'includes/functions.php';
$user = new User();
$uid = $_SESSION['user_id'];
 
if (!$user->get_session())
{
    header("location:login.php");
}
if ($_GET['q'] == 'logout')
{
    $user->user_logout();
    header("location:login.php");
}
?>

Logout

get_session()) { header("location:login.php"); } if ($_GET['q'] == 'logout') { $user->user_logout(); header("location:login.php"); } ?> Logout

 


Membuat tabel database user dengan field sebagai berikut
———————————————————-

1
2
3
4
5
6
7
8
9
10
11
12
mysql_query("CREATE TABLE IF NOT EXISTS user(
                               user_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
                               username VARCHAR(250) NOT NULL,
                               email VARCHAR(250) NOT NULL,
                               password VARCHAR(250) NOT NULL,
                               full_name VARCHAR(250) NOT NULL,
                               no_hp INT(20) NOT NULL,
                               website VARCHAR(250) NOT NULL,
                               user_type INT(2) NOT NULL,
                               UNIQUE (`email`),
                               UNIQUE (`username`)
                               );");

mysql_query("CREATE TABLE IF NOT EXISTS user( user_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, username VARCHAR(250) NOT NULL, email VARCHAR(250) NOT NULL, password VARCHAR(250) NOT NULL, full_name VARCHAR(250) NOT NULL, no_hp INT(20) NOT NULL, website VARCHAR(250) NOT NULL, user_type INT(2) NOT NULL, UNIQUE (`email`), UNIQUE (`username`) );");