Tutorial Form PHP Part 7: Cara Mengirim Variabel (Pesan) Antar Halaman PHP
Dari cara penanganan objek form dengan method=GET, kita dapat melihat bahwa HTML mengirimkan ’isi’ form melalui alamat URL. Cara pengiriman seperti ini bisa kita manfaatkan sebagai sarana mengirim pesan (dalam bentuk variabel) antar halaman PHP. Jika ditambah dengan fungsi header(), kita bisa memanfaatkan fitur ini untuk menampilkan pesan kesalahan dari sebuah form.
Cara Mengirim Variabel Antar Halaman PHP
Dalam PHP terdapat beberapa cara untuk mengirim variabel antar halaman. Salah satunya adalah dengan memanfaatkan cara pengiriman form dengan method=GET. Jika kita mengirim form dengan metode GET, maka hasil dari form akan ditambahkan di dalam menggunakan variabel superglobal $_GET.
Sebagai contoh, jika di dalam form terdapat kotak input dengan atribut name=user_name yang diisi dengan ’duniailkom’, maka ketika dikirim untuk diproses ke halaman proses.php, di dalam URL akan menjadi:
proses.php?user_name=duniailkom |
dan didalam halaman proses.php, variabel $_GET[’user_name’] akan berisi ’duniailkom’.
Dengan cara ini kita bisa mengirim variabel dari sebuah halaman ke halaman lain. Misalkan kita membuat sebuah kondisi logika dengan PHP, dan jika logikanya salah maka tampilkan sebuah link yang menyatakan bahwa alamat tidak lengkap. Pengiriman pesan ini bisa ditulis sebagai berikut:
proses.php?pesan=alamat+tidak+lengkap. |
Ketika user men-klik link tersebut, pada halaman proses.php akan memiliki sebuah variabel $_GET[’pesan’] yang berisi: ’alamat tidak lengkap’.
Kita bisa memanfaatkan ini untuk berbagai hal, dan dalam tutorial kali ini kita akan menggunakan cara ini untuk menampilkan pesan kesalahan dari form.
Redirect halaman dengan fungsi header(Location:)
Fungsi header() di dalam PHP digunakan untuk memproses HTTP header. Fungsi header() memiliki banyak fitur, namun yang akan kita manfaatkan adalah fitur untuk mengirim user ke halaman lain atau dikenal dengan istilah: redirect.
Untuk ’mengirim’ user ke sebuah halaman, kita menggunakan Location:halaman.html sebagai argumen fungsi header(). Misalkan kita ingin mengirim user ke halaman pendaftaran.html pada situs duniailkom.com, maka penulisan fungsi header() adalah sebagai berikut:
header( "Location: https://www.duniailkom.com/pendaftaran.html" ) |
Halaman yang dituju tidak harus berupa halaman HTML, tetapi juga halaman PHP, atau bahkan file multimedia seperti gambar. Fitur ini akan kita manfaatkan untuk menampilkan pesan kesalahan form dalam PHP.
Cara Menampilkan Pesan Kesalahan Form
Dalam tutorial sebelumnya tentang Validasi Form untuk Mencegah Cross-site Scripting dan HTML injection, kita telah membuat proses validasi form dan menampilkan pesan kesalahan form berdasarkan kondisi yang terjadi. Namun pesan kesalahan tersebut hanya ditampilkan pada halaman proses.php. Jika user ingin mengubah isian form, ia terpaksa kembali kehalaman form.html untuk memperbaiki kesalahan form tersebut dengan cara mengetik manual di web browser.
Salah satu fitur pengisian form yang umum digunakan adalah ketika isian form ditemukan kesalahan, maka user akan dikembalikan ke halaman awal form, beserta pesan kesalahan. Untuk menghasilkan fitur seperti ini, kita akan memanfaatkan fungsi PHP: header().
Kembali menggunakan halaman form.html dan proses.php yang kita gunakan dalam tutorial-tutorial sebelumnya, kali ini saya akan memodifikasi halaman proses.php agar bisa memanfaatkan fungsi header(). Berikut adalah modifikasi file proses.php:
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
| <?php if (isset( $_GET [ 'nama' ]) AND isset( $_GET [ 'email' ])) { $nama = $_GET [ 'nama' ]; $email = $_GET [ 'email' ]; $nama =htmlspecialchars( $nama ); $email = strip_tags ( $email ); } else { header( "Location:form.php?error=variabel_belum_diset" ); } if ( empty ( $nama )) { header( "Location:form.php?error=nama_kosong" ); } else { if ( is_numeric ( $nama )) { header( "Location:form.php?error=nama_harus_huruf" ); } else { echo "Nama: $nama <br /> Email: $email" ; } } ?> |
Dari kode proses.php kita sebelumnya, saya hanya mengubah bagian error menggunakan fungsi header(). Namun perhatikan bahwa saya mengirimkan variabel error kepada halaman form.php, pesan inilah yang akan diproses pada halaman form.php.
Untuk halaman form.html, saya akan mengubah nama file menjadi form.php. Perubahan ini diperlukan karena pada halaman form.html memerlukan proses PHP untuk menangani variabel error yang dikirim dari halaman proses.php.
Berikut adalah kode dari halaman form.php:
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
38
39
40
41
42
43
44
45
46
| <?php //ambil nilai variabel error if (isset( $_GET [ 'error' ])) { $error = $_GET [ 'error' ]; } else { $error = "" ; } //siapkan pesan kesalahan $pesan = "" ; if ( $error == "variabel_belum_diset" ) { $pesan = "<h3>Maaf, anda harus mengakses halaman ini dari form.php</h3>" ; } if ( $error == "nama_kosong" ) { $pesan = "<h3>Maaf, anda harus mengisi nama</h3>" ; } if ( $error == "nama_harus_huruf" ) { $pesan = "<h3>Maaf, nama harus berupa huruf</h3>" ; } ?> <!DOCTYPE html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=UTF-8" /> <title>Belajar Form PHP</title> </head> <body> <h2>Tutorial Belajar Form HTML - PHP </h2> <?php echo $pesan ; ?> <form action= "proses.php" method= "get" > Nama: <input type= "text" name= "nama" /> <br /> E-Mail: <input type= "text" name= "email" /> <br /> <input type= "submit" value= "Proses Data" > </form> </body> </html> |
Pada halaman form.php saya menambahkan beberapa kode PHP di awal halaman. Kode PHP ini berfungsi untuk menangani variabel error yang dikirimkan dari halaman proses.php.
Setelah memindahkan variabel $_GET[‘error’] ke dalam variabel $error agar mudah diakses, selanjutnya saya membuat beberapa logika IF untuk memeriksa pesan error, dan memberikan ‘pesan kesalahan’ yang ingin ditampilkan kedalam variabel $pesan.
Variabel $pesan ini kemudian akan disisipkan di awal tag form.
Untuk mengujinya, silahkan anda mencoba form.php tersebut dan klik tombol ‘Proses Data’ tanpa memberikan input apa-apa di dalam form, dan sekarang pesan kesalahan akan tampil di halaman form.php.
Penanganan cara kesalahan form seperti ini membuat form menjadi lebih user friendly. Jika anda memahami CSS, biasanya pesan kesalahan ini ditampilkan dengan style yang berbeda dari judul form agar lebih ‘pas’, namun dalam tutorial ini anda setidaknya telah mengetahui trik untuk menampilkan pesan kesalahan form dengan PHP. Silahkan berekplorasi dan menambahkan objek-objek form lain sebagai bahan latihan.
Komentar
Posting Komentar