Cara menggunakan membuat halaman loginphp

Membuat halaman form login dengan PHP dan HTML, di tutorial ini menggunakan XAMPP dan build function mysqli di PHP sehingga nantinya PHP terhubung dengan MySql atau MariaDB dan HTTP server menggunakan Apache bawaan dari XAMPP.

Pada tutorial ini studi case nya adalah :

  • membuat sebuah halam login
  • kemudian halaman registrasi
  • menampilkan informasi akun
  • menggunakan kode referal untuk melakukan registrasi, jadi jika tanpa kode referal maka tidak bisa melakukan registrasi.
  • dan selain itu di studi case form login php ini terdapat tombol logout.

Oke langsung saja kita membuat beberapa file PHP kosong yang nantinya diisi pengkodean bahasa pemrograman php dengan beberapa nama file index.php, login.php, registration.php dan database.php kemudian disimpan dalam folder simple_login_php.

selanjutnya, untuk nantinya bisa dijalankan di XAMPP maka folder simple_login_php ditaruh dalam folder program XAMPP di bagian htdocs, contohnya saya menyimpan di drive C: maka alamatnya folder berada di C:\xampp\htdocs

Membuat Database dan tabel MySql menggunakan phpmyadmin

Setelah membuat beberapa file dan folder yang dibutuhkan untuk php form login selanjut membuat database MySql menggunkan phpmyadmin, nantinya database digunakan untuk menyimpan informasi akun sperti nama, email, password, kode kode referal.

  • Membuat table users di database simple_login_php dengan persiapan jumlah kolom atau atribut 5.
    Cara menggunakan membuat halaman loginphp
  • memilih type data dan nama atribut seperti berikut yang menggunakan nama atribut atau kolom id, email, full_name, referal_code, dan password

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(50) DEFAULT NULL,
  `full_name` varchar(50) DEFAULT NULL,
  `referal_code` varchar(50) DEFAULT NULL,
  `password` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Cara menggunakan membuat halaman loginphp

  • kamus data table users

    Cara menggunakan membuat halaman loginphp

  • memasukkan data ke tabel users

    Cara menggunakan membuat halaman loginphp

  • menggunakan query untuk insert data

INSERT INTO `users` (`id`, `email`, `full_name`, `referal_code`, `password`) VALUES (NULL, '[email protected]', 'Aku Admin', '1234', '123321');

Memulai Pengkodean bagian PHP

  • database.php

<?php
function connect_database(){
  $DB_HOST = "localhost";
  $DB_USER = "root";
  $DB_PASSWORD = "";
  $DB_DATABASE = "simple_login_php";

  $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_DATABASE);
  if($mysqli->connect_error) die('Connect Error DB');
  return $mysqli;
}

function login($email, $password){
  $mysqli = connect_database();

  try {
    $stmt = $mysqli->prepare("SELECT * FROM users WHERE email = ? AND password = ?");
    $stmt->bind_param("ss", $email, $password);
    $stmt->execute();
    $result = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt->close();
  } catch (\Throwable $th) {
    throw $th;
  }

  return $result;
}

function registation($full_name, $email, $password, $referal_code){
  $mysqli = connect_database();

  if (referal_check($referal_code)) {
    $referal_code = substr(str_shuffle('0123456789'), 0, 5);

    $stmt = $mysqli->prepare("INSERT INTO users (full_name, email, password , referal_code) VALUES (?, ?, ?, ?)");
    $stmt->bind_param("sssi", $full_name, $email, $password, $referal_code);
    $stmt->execute();
    $user_id = $stmt->insert_id;
    $stmt->close();

    $stmt2 = $mysqli->prepare("SELECT * FROM users WHERE id = ?");
    $stmt2->bind_param("i", $user_id);
    $stmt2->execute();
    $result = $stmt2->get_result()->fetch_all(MYSQLI_ASSOC);
    $stmt2->close();

    return $result;
  } else {
    return null;
  }
}

function referal_check($code){
  $mysqli = connect_database();

  $stmt = $mysqli->prepare("SELECT * FROM users WHERE referal_code = ? ");
  $stmt->bind_param("s", $code);
  $stmt->execute();
  $result = $stmt->get_result()->fetch_all(MYSQLI_ASSOC);
  $stmt->close();

  if (count($result) != 0) {
    return true;
  } else {
    return false;
  }

}

?>

  • login.php

<?php
session_start();
require('database.php');

$base_url = "http://localhost/simple_login_php";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

  $email    = $_POST["email"];
  $password = $_POST["password"];

  $result_login = login($email, $password);

  if (count($result_login) > 0) {

    $_SESSION["data_login"] = $result_login;

    header("Location: /simple_login_php");
    die();
  } else {
    $message = "Email atau password salah <br>";
  }

}

?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Login Form</title>
  <style>
    body {
      text-align: center;
    }
    form {
      display: inline-block;
    }
  </style>
</head>
<body>
<form action="" method="post">
  <?php !empty($message) ? print $message : ""?>

  <label><h2>Login ke Akun</h2></label>

  <label>Email :</label>
  <input type="email" name="email">
  <br><br>

  <label>Password :</label>
  <input type="password" name="password">
  <br><br>

  <button type="submit">Login</button>
  <br>
  <br>

  <label>
    <a href="<?= $base_url . '/registration.php'?>">Daftar akun baru</a>
  </label>
</form>
</body>
</html>

  • index.php

<?php
session_start();
require('database.php');

$base_url = "http://localhost/simple_login_php";

if (empty($_SESSION["data_login"])) {
  header("Location: " . $base_url . "/login.php");
  die();
}

// logout action
if (count($_SESSION) != 0 && $_SERVER["REQUEST_METHOD"] == "POST" && $_POST['logout'] == 'true') {
  session_destroy();
  header("Location: " . $base_url . "/login.php");
  die();
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>My Info</title>
  <style>
    body {
      text-align: center;
    }
  </style>
</head>
<body>
<center>
  <h2>Info Akun</h2>
  <table>
    <tr>
      <td>Email</td>
      <td>: <?= $_SESSION['data_login'][0]['email']?></td>
    </tr>
    <tr>
      <td>Nama Lengkap</td>
      <td>: <?= $_SESSION['data_login'][0]['full_name']?></td>
    </tr>
    <tr>
      <td>Kode Referal Kamu</td>
      <td>: <?= $_SESSION['data_login'][0]['referal_code']?></td>
    </tr>
  </table>
  <br>

  <form action="" method="post">
    <input type="hidden" name="logout" value="true">
    <button type="submit" value="true" >Logout</button>
  </form>
</center>
</body>
</html>

  • registration.php

<?php
require('database.php');
$base_url = "http://localhost/simple_login_php";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $result = registation($_POST["full_name"], $_POST["email"], $_POST["password"], $_POST["referal_code"]);
  if ($result) {
    session_start();
    $_SESSION["data_login"] = $result;
    header("Location: /simple_login_php");
    die();
  } else {
    $message = "tidak bisa mendaftar";
  }
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Registration Form</title>
  <style>
    body {
      text-align: center;
    }
    form {
      display: inline-block;
    }
  </style>
</head>
<body>
<form action="" method="POST">
  <?php !empty($message) ? print $message : ""?>
  <label> <h2>Registrasi Akun</h2> </label>
  <label>Nama :</label>
  <input type="text" name="full_name">
  <br><br>

  <label>Email :</label>
  <input type="email" name="email">
  <br><br>

  <label>Password :</label>
  <input type="password" name="password">
  <br><br>

  <label>Kode referal :</label>
  <input type="text" name="referal_code">
  <br><br>
  <button type="submit">Daftar</button>
  <br><br>

  <label>
    <a href="<?= $base_url . '/login.php'?>">Login ke akun</a>
  </label>
</form>
</body>
</html>

Penjelasan :

  • mysqli : function bawaan di PHP untuk terhubung dengan MySql
  • mysqli->prepare : menyiapkan query yang akan diekseskusi
  • try catch : biasa digunakan ketika mencoba exkesuki program akan tetapi ketika program gagal maka error akan di tangkap pada blok kode catch.
  • require : melakukan import file PHP atau menggabungkan file PHP dengan yg lain.
  • session_start(); : memulai session dalam file PHP ketika dijalankan
  • $_SERVER["REQUEST_METHOD"] : memiliki nilai POST atau GET, pada umumnya jika di form mengirim data menggunakan POST maka bernilai POST.
  • header("Location: " . $base_url . "/login.php"); : mengarahkan akses yang biasanya disebut redirect, disini diarahkan ke file login.php jika kondisi session kosong.
  • die(); : memerintahkan PHP untuk tidak melakukan eksekusi pengkodean, atau memerintahkan berhenti.
  • $_SESSION['data_login'][0] : menunjukan bahwa nilai di session sudah terisi dan mengakses data memori beralamat ke 0 atau pertama.

source code ini bisa teman-teman lihat dan unduh atau clone di repository GitHub : https://github.com/SigitNurhanafi/simple_login_php

Langkah langkah membuat form login?

Cara Membuat Form Login yang Menarik dengan HTML.
Deklarasikan Dokumen HTML Anda. Sekarang, buka file html form login Anda. ... .
2. Buat Kepala Halaman Form Login. ... .
3. Beri Judul Halaman Form Login. ... .
3. Sisipkan File CSS. ... .
4. Buat Badan Form Login. ... .
Buat Layout Form Login. ... .
6. Beri Judul Form Login. ... .
7. Buat Kotak Form Login..

Apa yang dimaksud dengan form login?

Form Login Utama merupakan gerbang utama untuk dapat masuk ke dalam aplikasi. Pengguna memasukkan username dan password. Username dan password tersebut telah tersimpan dalam database.

Apa yang dimaksud dengan session pada PHP?

Apa itu Session di PHP? Session adalah mekanisme untuk mempertahankan informasi di semua halaman web yang berbeda untuk mengidentifikasi pengguna saat mereka menelusuri situs atau aplikasi.