Pemrosesan form dan manajemen sesi
Berikut adalah modul mengenai **Pemrosesan Formulir dan Manajemen Sesi menggunakan PHP**, dilengkapi dengan contoh-contoh yang dapat dijalankan menggunakan alat-alat di Ubuntu 24.04 tanpa menggunakan Microsoft Code. Modul ini dirancang untuk mendukung perkuliahan Pemrograman Web.
- 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:
```html <!DOCTYPE html> <html lang="id"> <head>
<meta charset="UTF-8"> <title>Formulir Kontak</title>
</head> <body>
Formulir Kontak
<form action="proses_formulir.php" method="post"> <label for="nama">Nama:</label>
<input type="text" id="nama" name="nama">
<label for="email">Email:</label>
<input type="email" id="email" name="email">
<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 <?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 <?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 <?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 <?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 <?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`)
```php <!DOCTYPE html> <html lang="id"> <head>
<meta charset="UTF-8"> <title>Login</title>
</head> <body>
Login
<form action="proses_login.php" method="post"> <label for="nama_pengguna">Nama Pengguna:</label>
<input type="text" id="nama_pengguna" name="nama_pengguna">
<label for="kata_sandi">Kata Sandi:</label>
<input type="password" id="kata_sandi" name="kata_sandi">
<input type="submit" value="Login"> </form>
</body> </html> ```
- b. Memproses Login (`proses_login.php`)
```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 <?php session_start(); if (isset($_SESSION['nama_pengguna'])) {
echo "Selamat datang, " . $_SESSION['nama_pengguna'] . "!"; echo '
<a href="logout.php">Logout</a>';
} else {
header("Location: login.php"); exit();
} ?> ```
- d. Logout (`logout.php`)
```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):
```bash 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`:
```bash 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:
```bash 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.
- 5.