Paste Here API

Gambar
  Selamat malam. Kok sehari langsung bikin dua blog bang? Mana blognya bahas proyek yang beda lagi. Dan lebih parahnya, abang belum menyelesaikan yang aplikasi Polling. Tentang Proyek Sebelumnya, saya membuat Polling App hanya untuk tujuan belajar ya. Tapi kalau bisa akan saya selesaikan. Saya tidak bisa janji ya, hehehe. Proyek Paste Here  ini bukan full proyek, yakni hanya backendnya saja. Ya benar, ini hanya berupa sebuah API yang sangat simpel. Bahkan hanya ini saya buat dengan hanya satu tabel database saja. Rencananya sih mau ada table user, tetapi itu akan mepersulit user untuk menggunakannya. Dan itu hanya membuat proyek keluar dari tujuan utamanya, yakni mempurmudah dalam copy/paste antar device. Yep, ini berguna hanya untuk kopas. Sepertinya ini sangat sepele, tapi sebenarnya proyek Paste Here  ini sangatlah berguna ketika kita mau mengcopy kode program dengan device berbeda. Dan juga akan berguna untuk membagikan secuil kode program dengan teman jika kalian tid...

Membuat Aplikasi Catatan Perjalanan - Mendaftar & Login user #04


 

 Sebelum mulai, sebaiknya siapkan segelas kopi dulu, lihat-lihat lingkungan sekitar, dan nikmati keindahan alam. Sebab langkah ini akan menjadi langkah tersulit dari yang sebelum-sebelumnya. Bahkan mungkin ada beberapa kode program yang sangat asing.

Tenang... gak seserem itu kok. Hanya beberapa file saja yang banyak ngodingnya. Lainnya hanya berapa baris kode saja.

Tapi jangan meremehkan,.. Oke langsung kita mulai saja.

 

Buat config.txt

Buat lah file dengan nama config.txt lalu isi dengan "[]" tanpa tanda petik. Di sini data user akan disimpan. 

Buat File env.php

 Nama file gak harus sama. Fungsi file ini untuk menyimpan kode yang bakal digunakan berkali-kali. Seperti redirect kode, mengambil data file, dkk. File ini bagaikan jantungnya program yang aplikasi catatan perjalanan ini. Berikut kodenya:

 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
<?php
session_start();
date_default_timezone_set('Asia/Jakarta');

function ke($tujuan)
{
	header('Location: '.$tujuan);
}

function filter()
{
	if (!$_SESSION['login']) {
		ke('login.php');
	}
}


class Model
{
	function buat($namafile, $isi = '')
	{
		file_put_contents($namafile, $isi);
	}

	function tambah($namafile, $databaru)
	{
		$datalama = json_decode(file_get_contents($namafile), true);
		array_push($datalama, $databaru);
		file_put_contents($namafile, json_encode($datalama));
	}

	function ambil($namafile)
	{
		return json_decode(file_get_contents($namafile), true);
	}
}
?>

Penjelasan:

-pada baris 2 berfungsi supaya session selalu berjalan dan tak perlu mengetik session_start() setiap file.

-pada baris 3 berfungsi supaya waktunya +7GMT

-pada baris 5-8 berfungsi agar redirect file lebih cepat, tinggal ketikkan perintah ke('namaFIle.php') saja, tak perlu lagi memanggila header blablabla setiap saat

-pada baris 10-15 berguna jika fungsi dipanggil maka user yang belum login gak bisa mengakses halaman yang difilter

-pada baris 18 yaitu sebuah class yang berfungsi untuk mengelola file

-pada baris 20-23 berfungsi untuk membuat file baru

-pada baris 25 yaitu fungsi untuk menambah data. Pada baris 27: menyimpan data lama file kedalam variabel $datalama, lalu pada baris 28 $datalama akan digabungkan dengan data yang baru di variabel $databaru, dan menulis sebuah file dengan isi $datalama yang sudah digabungkan dengan $databaru dan sudah dijadikan sebuah data JSON

-pada baris 34 berfungsi untuk mengambil data hanya dengan memasukkan nama file


Proses Mendaftar

Pertama-tama di file register.php pada elemen/tag form tambahkan method dan action:

1
<form action="register-proses.php" method="POST"></form>

Jika sudah, sekarang buat file register-proses.php. Dan isi dengan kode berikut:

1
2
3
4
5
6
7
8
<?php 
include 'env.php';

$m = new Model();
$m->tambah('config.txt', $_POST);
$m->buat($_POST['nik'].'.txt', '[]');
ke('login.php');
 ?>

Penjelasan:

-baris 2, untuk memanggil file env.php

-baris 4, membuat objek dari class Model()

-baris 5, menambah data config.txt dengan data yang baru dikirim

-baris 6, membuat file dengan nik user sebagai nama filenya, ini adalah wadah data catatan perjalanan setiap user nantinya

-baris 7, mengarahkan halaman ke halaman login

 

Sekarang silakan coba. Jika mendaftar di halaman register.php maka akan langsung membuka halaman login. Di dalam folder projek bakal ditemukan file txt baru dengan nik yang baru dimasukkan sebagai namanya. Dan di file config.txt terdapat teks yang lebih panjang. 

Jika belum terjadi seperti penjelasan di atas, silakan perhatikan setiap kode dan langkahnya kembali. Jika sudah, mari kita lanjutkan👉

 

Proses Login

Seperti yang proses mendaftar, di dalam file login.php pada tag form tambahkan post dan method:

<form method="post" action="login-proses.php">

 Setelah itu buatlah file login-proses.php dan isikan dengan kode berikut:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php 
include 'env.php';

$m = new Model();
$data = $m->ambil('config.txt');

foreach ($data as $d) {
	if ($d == $_POST) {
		$_SESSION['login'] = true;
		$_SESSION['nik'] = $_POST['nik'];
		ke('index.php');
		exit();
	}
}
ke('login.php');
 ?>

 Penjelasan kode:

-baris 5, mengambil semua data user dari file config.txt

-baris 7-14, mengecek satu-persatu apa ada data yang dikirim ada yang sama dengan data yang sudah ada, jika ada (pada baris 8-13) maka akan membuat session login dan nik, lalu akan diarahkan ke halaman home, setelah itu program akan berakhir

-baris 15, jika tak ada satupun data yang sama, maka akan diarahkan lagi kehalaman login.php


Oops, belum selesai ya... pada bagian paling atas header.php tambahkan kode berikut:

1
2
3
4
<?php 
include 'env.php';
filter();
?>

Sekarang sudah bisa dites, jika belum login atau login gagal maka ngga bakal bisa memasuki semua halaman yang menggunakan header.php


Membuat Sistem Keluar

Jika ada sistem login pasti harus ada sistem logout juga dong.Berikut kodenya:

1
2
3
4
5
6
<?php 
include 'env.php';
filter();
session_destroy();
ke('login.php');
?>

"Kok dibagian logout juga butuh filter?"

Yup, supaya halaman logout hanya bisa diakses oleh user yang sudah login doang.

session_destroy() berfungsi untuk menghapus semua session.

 

Selesai. Sampai ketemu di langkah berikutnya, menambah dan menampilkan data.

Download kodenya di sini.

Komentar

Postingan populer dari blog ini

Membuat Aplikasi Catatan Perjalanan - Membuat Halaman Login dan Register #01

Membuat Aplikasi Catatan Perjalanan - Menggunakan PHP tanpa Database #00

Membuat Aplikasi Catatan Perjalanan - Membuat Halaman Home #02