Membuat Aplikasi Catatan Perjalanan - Mendaftar & Login user #04
- Dapatkan link
- X
- Aplikasi Lainnya
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.
- Dapatkan link
- X
- Aplikasi Lainnya
Komentar
Posting Komentar
Saya sangat menghargai kesopanan Anda😊