Pernahkah Anda mendapati seseorang yang telah mensubmit form yang ada
di situs Anda beberapa kali dalam waktu yang hampir bersamaan? Biasanya
hal ini dilakukan oleh user yang mengira proses submit form belum
sukses, sehingga ia berulang kali mengklik REFRESH atau mengklik tombol
SUBMIT padahal sebenarnya proses submit sendiri sudah berhasil. Apabila
data dari form tersebut disimpan di database maka Anda akan mendapati
beberapa data yang sama (duplicate data).
Lebih buruk lagi, seandainya yang mengirim data melalui form adalah
sebuah spam yang bisa jadi akan menghabiskan space quota hostingan Anda
di server karena puluhan bahka ratusan data akan disubmit dalam waktu
yang hampir bersamaan melalui form.
Nah… berikut ini ada tips untuk menanggulangi submit form yang berulang kali tersebut.
Misalkan Anda memiliki form berikut ini
form.php
1.
2.
Masukkan nama Anda: "nama"
type=
"text"
/>
3.
"submit"
/>
4.
Form di atas digunakan untuk memasukkan nama user lalu mensubmitnya.
Ini hanyalah contoh sederhana saja. Anda dapat membuat beberapa field
tambahan bila diperlukan.
Teknik untuk mencegah submit berulang kali disini menggunakan bantuan
session. Bagaimana idenya? OK… Pertama-tama untuk inisialisasi, session
dibuat bernilai TRUE. Submit dikatakan berhasil jika nilai session yang
tadinya bernilai TRUE, kemudian berubah menjadi FALSE. Sedangkan
apabila submit belum berhasil maka status session masih TRUE dan
memungkinkan user melakukan re-submit. Apabila submit sebelumnya
berhasil (status session menjadi FALSE), maka ia tidak bisa mensubmit
lagi.
Nah, oleh karena itu kita harus modifikasi script untuk formnya untuk menerapkan ide di atas.
form.php
01.
02.
// memulai session
03.
session_start();
04.
05.
// jika session belum dibuat, maka inisialisasi awal diberi nilai TRUE
06.
07.
if
(!isset(
$_SESSION
[
'submit'
])) {
08.
$_SESSION
[
'submit'
] = true;
09.
}
10.
?>
11.
12.
13.
Masukkan nama Anda: "nama"
type=
"text"
/>
14.
"submit"
/>
15.
Nah selanjutnya kita buat script untuk memproses submitnya.
submit.php
01.
02.
session_start();
03.
04.
// cek apabila submit tidak valid
05.
06.
if
(!
$_SESSION
[
'submit'
])
07.
{
08.
echo
"ERROR: form sudah disubmit sebelumnya!"
;
09.
}
10.
else
{
11.
// mengubah session menjadi false setelah submit sukses
12.
$_SESSION
[
'submit'
] = false;
13.
14.
// Bagian ini dapat dimodifikasi sendiri sesuai keperluan
15.
// misalnya ditambah perintah untuk
16.
// entri data ke tabel database
17.
18.
// dalam contoh ini data yang diisi via form
19.
// hanya sekedar ditampilkan saja setelah disubmit
20.
21.
echo
"Nama anda"
.
$_POST
[
'nama'
];
22.
}
23.
?>
OK… begitu kira-kira tips sederhana untuk mengatasi submit data yang
berulang-ulang via form. Selamat mencoba dan mudah-mudahan bermanfaat
bagi Anda. Nantikan tips-tips berikutnya dari saya, so… stay tune terus
di blog ini.
1 comments so far
Infonya bermanfaat gan..
EmoticonEmoticon