Sering kali ditemui pada halaman web yang menggunakan php pada saat user menginput data dan data sudah terkirim tapi saat user merefresh halaman maka data yang sama akan disimpan juga. Hal ini banyak terjadi jika kita menggunakan motod POST untuk mengirim data.
Sebagai solusinya anda bisa membuat sebuah file php baru dimana file tersebut akan melakukan proses simpan data. Jadi ketika user mengklik tombol Save maka data akan dikirim ke file yang dimaksud. jadi anda harus membuat setingannya kira-kira seperti ini:
<form method="post" action="proses-simpan.php"> .... </form>
Maka di dalam file proses-simpan.php anda bisa mengisinya seperti ini:
<?php session_start(); .... proses penyimpanan dalam database..... if($success){ $_SESSION['log']='Data berhasil disimpan'; }else{ $_SESSION['log']='Data gagal disimpan'; } function GoBack(){ $back=$_SERVER['HTTP_REFERER']; @header('Location: '.$back); } GoBack(); ?>
Jadi dengan kode seperti ini , ketika user menyimpan data maka akan ditujukan ke file proses-simpan.php lalu kemudian setelah disimpan akan dikembalikan lagi ke file sebelumnya. Misalnya file untuk menginput data namanya input-data.php. Nah anda bisa membuat isi file input-data.php tersebut seperti ini:
<?php session_start(); if(!empty($_SESSION['log'])){ $log=$_SESSION['log']; unset($_SESSION['log']); } // menampilkan pesan berhasil atau gagal echo $log; ?> <form method="post" action="proses-simpan.php"> ..... </form>
Script php ini tinggal anda sempurnakan saja sesuai dengan kebutuhan anda. Saya hanya menceritakan alurnya dan tidak menampilkan script secara utuh. Semoga anda bisa memahami maksud tulisan ini.
sangat bermanfaat sekali mas, terima kasih..
Totorial yang sangat menarik, saya sedang mencegah cara duplikasi data