Difference between revisions of "Pemrosesan form dan manajemen sesi"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 9: | Line 9: | ||
Berikut adalah contoh formulir HTML dasar: | Berikut adalah contoh formulir HTML dasar: | ||
+ | <pre> | ||
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html lang="id"> | <html lang="id"> | ||
Line 26: | Line 27: | ||
</body> | </body> | ||
</html> | </html> | ||
+ | </pre> | ||
Dalam contoh di atas: | Dalam contoh di atas: | ||
Line 36: | Line 38: | ||
Di file `proses_formulir.php`, data yang dikirimkan dapat diproses sebagai berikut: | Di file `proses_formulir.php`, data yang dikirimkan dapat diproses sebagai berikut: | ||
+ | <pre> | ||
<?php | <?php | ||
if ($_SERVER["REQUEST_METHOD"] == "POST") { | if ($_SERVER["REQUEST_METHOD"] == "POST") { | ||
Line 50: | Line 53: | ||
} | } | ||
?> | ?> | ||
+ | </pre> | ||
Penjelasan: | Penjelasan: | ||
Line 109: | Line 113: | ||
'''a. Formulir Login (`login.php`)''' | '''a. Formulir Login (`login.php`)''' | ||
+ | <pre> | ||
<!DOCTYPE html> | <!DOCTYPE html> | ||
<html lang="id"> | <html lang="id"> | ||
Line 126: | Line 131: | ||
</body> | </body> | ||
</html> | </html> | ||
+ | </pre> | ||
'''b. Memproses Login (`proses_login.php`)''' | '''b. Memproses Login (`proses_login.php`)''' | ||
+ | <pre> | ||
<?php | <?php | ||
session_start(); | session_start(); | ||
Line 151: | Line 158: | ||
} | } | ||
?> | ?> | ||
+ | </pre> | ||
'''c. Halaman Selamat Datang (`selamat_datang.php`)''' | '''c. Halaman Selamat Datang (`selamat_datang.php`)''' | ||
+ | <pre> | ||
<?php | <?php | ||
session_start(); | session_start(); | ||
Line 164: | Line 173: | ||
} | } | ||
?> | ?> | ||
+ | </pre> | ||
'''d. Logout (`logout.php`)''' | '''d. Logout (`logout.php`)''' | ||
+ | <pre> | ||
<?php | <?php | ||
session_start(); | session_start(); | ||
Line 174: | Line 185: | ||
exit(); | exit(); | ||
?> | ?> | ||
+ | </pre> | ||
==4. Menjalankan Contoh di Ubuntu 24.04== | ==4. Menjalankan Contoh di Ubuntu 24.04== | ||
Line 202: | Line 214: | ||
Buka browser dan akses `http://localhost/login.php` untuk melihat halaman login. | Buka browser dan akses `http://localhost/login.php` untuk melihat halaman login. | ||
+ | |||
+ | |||
+ | |||
+ | ==Pranala Menarik== | ||
+ | |||
+ | * [[Web Programming]] |
Latest revision as of 06:29, 7 April 2025
Pemrosesan Formulir dan Manajemen Sesi menggunakan PHP
1. Pemrosesan Formulir dengan PHP
Formulir HTML memungkinkan pengguna mengirimkan data ke server. PHP digunakan untuk memproses data tersebut.
a. Membuat Formulir HTML
Berikut adalah contoh formulir HTML dasar:
<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Formulir Kontak</title> </head> <body> <h2>Formulir Kontak</h2> <form action="proses_formulir.php" method="post"> <label for="nama">Nama:</label><br> <input type="text" id="nama" name="nama"><br> <label for="email">Email:</label><br> <input type="email" id="email" name="email"><br> <input type="submit" value="Kirim"> </form> </body> </html>
Dalam contoh di atas:
- `action="proses_formulir.php"` menentukan bahwa data formulir akan dikirim ke file `proses_formulir.php` untuk diproses.
- `method="post"` menentukan bahwa metode POST digunakan untuk mengirim data.
b. Memproses Data Formulir dengan PHP
Di file `proses_formulir.php`, data yang dikirimkan dapat diproses sebagai berikut:
<?php if ($_SERVER["REQUEST_METHOD"] == "POST") { // Mengambil data dari formulir $nama = htmlspecialchars($_POST['nama']); $email = htmlspecialchars($_POST['email']); // Validasi sederhana if (!empty($nama) && !empty($email)) { echo "Terima kasih, $nama. Email Anda adalah $email."; } else { echo "Harap isi semua bidang."; } } ?>
Penjelasan:
- `$_SERVER["REQUEST_METHOD"] == "POST"` memastikan bahwa data dikirim melalui metode POST.
- `htmlspecialchars()` digunakan untuk mencegah serangan XSS dengan mengonversi karakter khusus menjadi entitas HTML.
- Validasi sederhana memeriksa apakah semua bidang telah diisi.
2. Manajemen Sesi dengan PHP
Sesi memungkinkan penyimpanan informasi pengguna di server untuk digunakan di berbagai halaman.
a. Memulai Sesi
Untuk memulai sesi, gunakan fungsi `session_start()` di awal skrip PHP:
<?php session_start(); ?>
Fungsi ini harus dipanggil sebelum output apa pun dikirim ke browser.
b. Menyimpan Data dalam Sesi
Setelah sesi dimulai, data dapat disimpan dalam variabel sesi:
<?php session_start(); $_SESSION['nama_pengguna'] = 'Budi'; ?>
c. Mengakses Data Sesi
Data yang disimpan dalam sesi dapat diakses di halaman lain setelah sesi dimulai:
<?php session_start(); if (isset($_SESSION['nama_pengguna'])) { echo "Selamat datang, " . $_SESSION['nama_pengguna']; } else { echo "Silakan login terlebih dahulu."; } ?>
d. Mengakhiri Sesi
Untuk mengakhiri sesi dan menghapus semua data sesi:
<?php session_start(); session_unset(); // Menghapus semua variabel sesi session_destroy(); // Menghancurkan sesi ?>=
3. Contoh Aplikasi: Login Sederhana
Berikut adalah contoh aplikasi login sederhana yang menggabungkan pemrosesan formulir dan manajemen sesi.
a. Formulir Login (`login.php`)
<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8"> <title>Login</title> </head> <body> <h2>Login</h2> <form action="proses_login.php" method="post"> <label for="nama_pengguna">Nama Pengguna:</label><br> <input type="text" id="nama_pengguna" name="nama_pengguna"><br> <label for="kata_sandi">Kata Sandi:</label><br> <input type="password" id="kata_sandi" name="kata_sandi"><br> <input type="submit" value="Login"> </form> </body> </html>
b. Memproses Login (`proses_login.php`)
<?php session_start(); // Data pengguna contoh $pengguna = [ 'budi' => '12345', 'andi' => '67890' ]; if ($_SERVER["REQUEST_METHOD"] == "POST") { $nama_pengguna = htmlspecialchars($_POST['nama_pengguna']); $kata_sandi = htmlspecialchars($_POST['kata_sandi']); if (isset($pengguna[$nama_pengguna]) && $pengguna[$nama_pengguna] == $kata_sandi) { $_SESSION['nama_pengguna'] = $nama_pengguna; header("Location: selamat_datang.php"); exit(); } else { echo "Nama pengguna atau kata sandi salah."; } } ?>
c. Halaman Selamat Datang (`selamat_datang.php`)
<?php session_start(); if (isset($_SESSION['nama_pengguna'])) { echo "Selamat datang, " . $_SESSION['nama_pengguna'] . "!"; echo '<br><a href="logout.php">Logout</a>'; } else { header("Location: login.php"); exit(); } ?>
d. Logout (`logout.php`)
<?php session_start(); session_unset(); session_destroy(); header("Location: login.php"); exit(); ?>
4. Menjalankan Contoh di Ubuntu 24.04
Untuk menjalankan contoh-contoh di atas di Ubuntu 24.04 tanpa menggunakan Microsoft Code, ikuti langkah-langkah berikut:
1. Instal Apache dan PHP (jika belum terinstal):
sudo apt update sudo apt install apache2 php libapache2-mod-php -y
2. Buat File PHP:
Gunakan editor teks seperti `nano` untuk membuat file PHP. Misalnya, untuk membuat `login.php`:
nano /var/www/html/login.php
Tempelkan kode yang sesuai, lalu simpan dan keluar dari editor.
3. Atur Izin File:
Pastikan file memiliki izin yang tepat:
sudo chown www-data:www-data /var/www/html/*.php sudo chmod 644 /var/www/html/*.php
4. Akses Melalui Browser:
Buka browser dan akses `http://localhost/login.php` untuk melihat halaman login.