Difference between revisions of "Pemrosesan form dan manajemen sesi"

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


Pranala Menarik