PHP Login Session dan Captcha: Cara Mudah dan Praktis
Skrip PHP untuk Login dan Membuat Captcha (Bagian: Daftar)
Salah satu fitur yang sering digunakan pada website adalah login dan daftar. Fitur ini berguna untuk membedakan pengunjung yang memiliki akun dan yang tidak. Dengan login dan daftar, pengunjung dapat mengakses konten atau layanan tertentu yang dibatasi oleh website.
skrip php untuk login dan membuat captcha (bagian: daftar)
Namun, fitur login dan daftar juga rentan terhadap serangan spam atau brute force dari bot atau hacker. Serangan ini dapat merusak database atau mengambil alih akun pengguna. Oleh karena itu, diperlukan sebuah mekanisme keamanan tambahan untuk mencegah serangan tersebut.
Mekanisme keamanan yang sering digunakan adalah captcha. Captcha adalah singkatan dari Completely Automated Public Turing test to tell Computers and Humans Apart. Captcha berfungsi untuk membedakan antara manusia dan komputer yang mengisi form login atau daftar.
Captcha biasanya berupa gambar atau teks acak yang harus dimasukkan oleh pengguna sebelum mengirim form. Gambar atau teks tersebut sulit dibaca oleh komputer, sehingga hanya manusia yang dapat melakukannya. Dengan demikian, captcha dapat menghalau bot atau hacker yang mencoba mengisi form secara otomatis.
Pada artikel ini, kita akan belajar bagaimana membuat skrip PHP untuk login dan membuat captcha (bagian: daftar). Kita akan menggunakan XAMPP sebagai web server lokal, MySQL sebagai database, dan GD library sebagai alat untuk membuat gambar captcha.
Langkah-langkah Membuat Skrip PHP untuk Login dan Membuat Captcha (Bagian: Daftar)
Berikut adalah langkah-langkah yang perlu dilakukan untuk membuat skrip PHP untuk login dan membuat captcha (bagian: daftar):
Membuat database dan tabel user
Membuat file config.php untuk menghubungkan database
Membuat file captcha.php untuk membuat gambar captcha
Membuat file register.php untuk membuat form daftar
Membuat file proses_register.php untuk memproses data daftar
Membuat file index.php untuk membuat form login
Membuat file proses_login.php untuk memproses data login
Membuat file home.php untuk menampilkan halaman setelah login
Membuat file logout.php untuk menghapus session login
Membuat file style.css untuk memberi gaya pada tampilan website
1. Membuat Database dan Tabel User
Langkah pertama adalah membuat database dan tabel user yang akan digunakan untuk menyimpan data pengguna yang mendaftar dan login. Untuk membuat database dan tabel user, kita bisa menggunakan phpMyAdmin yang tersedia di XAMPP.
Buka web browser dan ketikkan alamat localhost/phpmyadmin. Klik menu New di sebelah kiri untuk membuat database baru. Beri nama database sesuai keinginan, misalnya db_login_captcha. Klik tombol Create untuk membuat database.
Setelah database dibuat, klik nama database tersebut di sebelah kiri. Klik menu SQL di atas untuk menulis perintah SQL untuk membuat tabel user. Masukkan perintah SQL berikut:
CREATE TABLE user (
id INT(11) NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(50) NOT NULL,
password VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
Klik tombol Go untuk menjalankan perintah SQL tersebut. Tabel user akan dibuat dengan empat kolom: id, username, email, dan password. Kolom id akan menjadi primary key dan auto increment, artinya nilai id akan otomatis bertambah setiap ada data baru.
2. Membuat File config.php untuk Menghubungkan Database
Langkah kedua adalah membuat file config.php yang berisi kode PHP untuk menghubungkan database yang telah dibuat dengan skrip PHP yang akan kita buat nanti. File config.php ini akan digunakan oleh file-file lain yang membutuhkan akses ke database.
Buka text editor seperti Visual Studio Code atau Notepad++. Buat sebuah folder baru di dalam folder htdocs di XAMPP, misalnya dengan nama login_captcha. Di dalam folder tersebut, buat sebuah file baru dengan nama config.php.
Ketikkan kode PHP berikut di dalam file config.php:
<?php
// definisikan variabel untuk koneksi database
$server = "localhost";
$user = "root";
$password = "";
$database = "db_login_captcha";
// buat koneksi dengan database
$conn = mysqli_connect($server, $user, $password, $database);
// cek koneksi
if (!$conn)
die("Koneksi gagal: " . mysqli_connect_error());
?>
Kode PHP di atas akan mendefinisikan variabel-variabel yang dibutuhkan untuk koneksi database, seperti nama server, nama user, password, dan nama database. Kemudian, kode tersebut akan menggunakan fungsi mysqli_connect() untuk membuat koneksi dengan database menggunakan variabel-variabel tersebut.
Jika koneksi berhasil, maka variabel $conn akan berisi objek koneksi yang dapat digunakan untuk menjalankan query SQL nantinya. Jika koneksi gagal, maka kode tersebut akan menampilkan pesan error dan menghentikan eksekusi skrip.
3. Membuat File captcha.php untuk Membuat Gambar Captcha
4. Membuat File register.php untuk Membuat Form Daftar
Langkah keempat adalah membuat file register.php yang berisi kode HTML dan PHP untuk membuat form daftar. Form daftar ini akan digunakan oleh pengguna yang belum memiliki akun untuk mendaftarkan diri dengan mengisi username, email, password, dan captcha.
Buat sebuah file baru dengan nama register.php di dalam folder login_captcha. Ketikkan kode berikut di dalam file register.php:
<?php
// memanggil file config.php untuk koneksi database
require_once "config.php";
// mengecek apakah tombol daftar sudah diklik atau belum
if(isset($_POST['daftar']))
// mengambil data dari form
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$captcha = $_POST['captcha'];
// mengecek apakah semua inputan sudah diisi atau belum
if(empty($username)
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Skrip PHP untuk Login dan Membuat Captcha (Bagian: Daftar)</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div >
<h1>Skrip PHP untuk Login dan Membuat Captcha (Bagian: Daftar)</h1>
<form action="" method="post">
<p><label for="username">Username:</label></p>
<p><input type="text" name="username" id="username" required autofocus placeholder="Masukkan username"></p>
<p><label for="email">Email:</label></p>
<p><input type="email" name="email" id="email" required placeholder="Masukkan email"></p>
<p><label for="password">Password:</label></p>
<p><input type="password" name="password" id="password" required placeholder="Masukkan password"></p>
<p><img src="captcha.php" alt="Captcha"></p>
<p><label for="captcha">Captcha:</label></p>
<p><input type="text" name="captcha" id="captcha" required placeholder="Masukkan kode captcha"></p>
<p><button type="submit" name="daftar">Daftar</button>
<a href="index.php">Sudah punya akun? Login disini.</a></p>
</form>
</div>
</body>
</html>
Kode HTML di atas akan membuat tampilan form daftar seperti berikut:
Kode PHP di atas akan melakukan beberapa hal:
Memanggil file config.php untuk koneksi database
Mengecek apakah tombol daftar sudah diklik atau belum
Mengambil data dari form dan mengecek apakah ada inputan yang kosong atau tidak
Mengecek apakah captcha yang dimasukkan sesuai dengan captcha yang ditampilkan
Mengecek apakah username atau email sudah terdaftar atau belum
Mengenkripsi password dengan algoritma bcrypt
Menyimpan data ke tabel user
Menampilkan pesan sukses atau error sesuai dengan hasil proses
Kesimpulan
Pada artikel ini, kita telah belajar bagaimana membuat skrip PHP untuk login dan membuat captcha (bagian: daftar). Kita telah membuat database dan tabel user, file config.php untuk koneksi database, file captcha.php untuk membuat gambar captcha, file register.php untuk membuat form daftar, file proses_register.php untuk memproses data daftar, file index.php untuk membuat form login, file proses_login.php untuk memproses data login, file home.php untuk menampilkan halaman setelah login, file logout.php untuk menghapus session login, dan file style.css untuk memberi gaya pada tampilan website.
Dengan menggunakan skrip PHP ini, kita dapat membuat website yang memiliki fitur login dan daftar dengan captcha sebagai mekanisme keamanan tambahan. Captcha dapat mencegah atau membatasi bot atau hacker yang mencoba mengisi form secara otomatis. Captcha juga dapat meningkatkan SEO website kita karena dapat mengurangi spam dan meningkatkan kualitas konten.
Demikianlah artikel tentang skrip PHP untuk login dan membuat captcha (bagian: daftar). Semoga artikel ini bermanfaat dan dapat membantu teman-teman yang sedang belajar PHP. Jika ada pertanyaan atau saran, silakan tulis di kolom komentar di bawah. Terima kasih. ca3e7ad8fd