Ketika proses redirect/peralihan halaman website, kita perlu menampilkan pesan tertentu kepada user agar si user dapat mengetahui proses apa yang telah ia lakukan sebelumnya. Ini bertujuan untuk menghindari kebingungan terhadap user selaku pengguna aplikasi web.
Pada tutorial ini, kita akan membuat fungsi yang bertujuan untuk menampilkan pesan tertentu ketika redirect halaman. Untuk menampilkan pesan, nantinya kita cukup menentukan apakah pesan akan ditampilkan dihalaman yang sama ataupun di halaman yang berbeda (redirect halaman). Silahkan lihat demontrasi dibawah untuk jelasnya.
Berikut langkah untuk menampilkan pesan ketika redirect halaman web dengan PHP.
Langkah 1
Buatlah file fungsi.php. File ini berisi 2 fungsi utama yaitu fungsi melakukan redirect dan fungsi menampilkan pesan. Berikut kode selengkapnya :
fungsi.php
// Fungsi ini berfungsi untuk menciptakan id pesan
function set_session_pesan($pesan) {
$pesan_id = sha1(microtime(true));
$_SESSION[$pesan_id] = $pesan;
return $pesan_id;
}
/* Fungsi redirect digunakan untuk mengambil id pesan yang telah disimpan didalam SESSION di fungsi set_session_pesan,
kemudian fungsi ini akan menyimpan pesan yang diketikkan oleh user
dan selanjutnya akan melakukan redirect halaman sesuai permintaan user */
function redirect($pesan, $page=FALSE) {
$data = array();
$_GET['pesan'] = set_session_pesan($pesan);
foreach ($_GET as $n=>$v) {
$data[] = "{$n}={$v}";
}
if (count($data) > 0) {
$data = '?'.implode('&',$data);
} else {
$data = '';
}
if (is_string($page)) {
$lokasi = $page;
} else {
$lokasi = $_SERVER['SCRIPT_NAME'];
}
$http = (!isset($_SERVER['HTTPS']) || strtolower($_SERVER['HTTPS'])!='on')?'http':'https';
header("Location: {$http}://{$_SERVER['HTTP_HOST']}{$lokasi}{$data}");
exit;
}
Baca Juga : Fungsi String PHP
Langkah 2
Setelah membuat kedua fungsi diatas, maka selanjutnya kita hanya perlu memanggil fungsi redirect saja disetiap proses yang akan ditampilan pesan. Ketika akan menampilkan pesan ada 2 alternatif cara yang bisa digunakan yaitu pesan ditampilkan dihalaman yang sama atau ditampilkan dihalaman yang berbeda.
Pada contoh berikut terdapat sebuah form input data (input.php) dan juga halaman untuk menampilkan semua data (tampil.php). Nantinya ketika user menginputkan data dan menekan tombol Simpan, maka user akan di-redirect ke halaman tampil.php sekaligus ditampilkan pesan bahwa data berhasil diinput.
Untuk itu buatlah sebuah file input.php yang akan digunakan untuk menginputkan data. Misal :
input.php
<?php
include('config.php'); // Meng-includekan koneksi database
include('fungsi.php'); // Meng-includekan fungsi yang telah dibuat sebelumnya
session_start();
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(isset($_POST['judul']) and isset($_POST['pengarang'])){ // Memeriksa apakah inputan judul dan pengarang ada atau tidak
$judul = $_POST['judul']; // membuat variabel judul untuk menampung data inputan judul
$pengarang = $_POST['pengarang']; // membuat variabel pengarang untuk menampung data inputan pengarang
if(!empty($judul) and (!empty($pengarang))){ // Memeriksa apakah variabel judul dan pengarang sudah terisi,jika sudah jalankan query dibawah
if($query = mysql_query("INSERT INTO buku (judul, pengarang) VALUES ('$judul','$pengarang')")) {
// Jika berhasil alihkan ke halaman tampil.php
//header('location: tampil.php');
redirect('Selamat, data berhasil diinput', '/mysql/tampil.php'); // Memberikan pesan sekaligus tujuan redirect halaman
}
}
}
}
<!DOCTYPE html>
<html>
<body>
<div id="konten" style="margin:30px auto;">
<form action="" method="post" class="">
<h2 align="center">Form Input Data Buku</h2>
<p>
<input type="text" name="judul" placeholder="Judul Buku" class="normal-input" />
</p>
<p>
<input type="text" name="pengarang" placeholder="Nama Pengarang" class="normal-input" />
</p>
<input type="submit" value="Simpan" class="tombol" />
</form>
</div>
</body>
</html>
Penting !
Dikarenakan pesan yang ditampilkan diproses melalui SESSION, pastikan Anda tidak lupa menuliskan perintah session_start() diawal dokumen seperti pada baris ke-5.
Nah, perhatikan perintah redirect di baris ke-18.
redirect('Selamat, data berhasil diinput', '/mysql/tampil.php');
Keterangan :
1. redirect : memanggil fungsi redirect yang telah dibuat sebelumnya difile fungsi.php
2. ‘Selamat, data berhasil diinput’ : merupakan pesan yang akan ditampilkan
3. ‘/mysql/tampil.php’ : lokasi redirect halaman yaitu tampil.php. Sedangkan mysql ialah direktori tempat diletakkannya file tampil.php
Apabila nantinya pesan ingin ditampilkan dihalaman yang sama tanpa proses redirect, maka cukup gunakan perintah seperti berikut :
redirect('Selamat, data berhasil diinput');
Langkah 3
Kemudian buatlah file tampil.php. File ini nantinya digunakan untuk menampilkan semua data sekaligus pesan ketika proses input data selesai dilakukan.
tampil.php
<?php
include(‘config.php’);
session_start();
?>
<!DOCTYPE html>
<html>
<body>
<div id="konten">
<?php
// Ini merupakan perintah untuk mengecek apakah ada pesan yang akan ditampilkan
if (isset($_GET['pesan']) && isset($_SESSION[$_GET['pesan']])) {
echo '<div class=pesan>';
echo $_SESSION[$_GET['pesan']]; // Jika ada, tampilkan pesannya
echo '</div>';
unset($_SESSION[$_GET['pesan']]);
}
?>
<table>
<tbody>
<tr>
<th>Judul Buku</th>
<th>Nama Pengarang</th>
</tr>
<?php
$query = mysql_query("SELECT judul, pengarang FROM buku ORDER BY judul ASC");
while($data = mysql_fetch_array($query)){
echo "<tr>";
echo "<td>$data[judul]</td>";
echo "<td>$data[pengarang]</td>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
</body>
</html>
Keterangan :
Sama halnya dengan file input.php, Anda perlu menuliskan perintah session_start() diawal dokumen. Kemudian perhatikan baris ke-11 sampai baris 16. Perintah tersebut merupakan perintah yang digunakan untuk mengecek apakah ada pesan yang harus ditampilkan, jika ada maka pesan tersebut akan ditampilkan dibaris ke-12.
Nantinya jika Anda ingin menampilkan pesan dihalaman yang sama ketika proses input, maka Anda cukup menuliskan perintah baris ke-11 sampai baris 16 saja difile tersebut.
Baca Juga : Cara Redirect HTTP ke HTTPS
Kesimpulan
Menggunakan fungsi untuk menampilkan pesan akan lebih terorganisir dibandingkan dengan menuliskannya secara langsung. Selain dapat digunakan berulang-ulang, penulisan kode program pun akan lebih rapi dan juga Anda dapat menampilkan pesan ketika proses redirect halaman. Selamat mencoba.
Baca Juga :
– Membuat Pencarian Facebook dengan jQuery dan PHP
– Membuat Dynamic Select Box Menggunakan jQuery dan Ajax
– Menampilkan Data dengan PHP MySQL dan DataTables
– Membuat Laporan Excel dengan PHP dan MySQL