Menampilkan Pesan Ketika Redirect Halaman dengan PHP

Tutorial - 11 Oct 2013

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.

Menampilkan Pesan Ketika Redirect Halaman dengan PHP

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.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;
}

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(&quot;INSERT INTO buku (judul, pengarang) VALUES ('$judul','$pengarang')&quot;)) { 
           
            // 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.

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



  • gan, di line 28 itu scrip name diganti apa emg gt?
    di line 31-33 itu yg HTTP, HTTP HOST diganti ato memang gt? soalnya error nih..
    saya pake localhost.

    • di line 28 gtu gan.

      line 31-33 tdk prlu dgnti. emg errornya apa ?

      Bgus agan download aja source codenya.

  • Hermawan nurdiawan

    mantap gan sangat membantu
    terimakasih

  • yandra

    gan sy mau tanya yg di fungsi.php line 16 sy error pakai localhost
    Parse error: syntax error, unexpected ‘&’, expecting ‘)’ in D:xampphtdocsnotiffungsi.php on line 16

    • Baris code yg error seperti apa ? Apakah sama seperti di tutorial ?

      • yandra

        iya baris kode sperti yg ditutorial