Dapatkan CD MP3 Murottal Al Qur'an dan Terjemahnya. Satu-satunya di Indonesia!!
Ingin Punya Script SMS Gateway dengan PHP + MySQL?

Dapatkan segera phpSMS V3.0, software SMS Gateway multi fungsi berbasis web buatan saya sendiri untuk keperluan Anda.
[Info Lengkap...]

Script PHP untuk Mencegah Submit Form Berulang Kali


October 6th, 2008 | by rosihanari | Cetak Artikel Ini Cetak Artikel Ini

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

Masukkan nama Anda:

[/sourcecode]

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


// memulai session
session_start();

// jika session belum dibuat, maka inisialisasi awal diberi nilai TRUE

if (!isset($_SESSION['submit'])) {
$_SESSION['submit'] = true;
}
?>

Masukkan nama Anda:

[/sourcecode]

Nah selanjutnya kita buat script untuk memproses submitnya.

submit.php


session_start();

// cek apabila submit tidak valid

if (!$_SESSION['submit'])
{
echo "ERROR: form sudah disubmit sebelumnya!";
}
else {
// mengubah session menjadi false setelah submit sukses
$_SESSION['submit'] = false;

// Bagian ini dapat dimodifikasi sendiri sesuai keperluan
// misalnya ditambah perintah untuk
// entri data ke tabel database

// dalam contoh ini data yang diisi via form
// hanya sekedar ditampilkan saja setelah disubmit

echo "Nama anda".$_POST['nama'];
}
?>
[/sourcecode]

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.

VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)

Anda ingin mendownload beberapa tool programming 100% gratis?
Silakan download di FREE PROGRAMMING TOOLS.
atau ingin berdonasi untuk pengembangan blog ini cukup dengan $1 via Paypal?



Beberapa artikel terkait


Share this article on:

Kata kunci: PHP -


Ada 5 komentar dalam artikel ini.

  1. kereayem says:

    Thk mas, artikelnya.. sedang di coba..

  2. d'sixTein says:

    gimana kalo browsernya dimatiin trus dihidupin lg, berarti qt jg hrs menambahkan cookie, tapi gimana lagi kalo cookienya dihapus.. koq google bisa ya.. apa pake IPnya, gimana kalo pake IP palsu, intinya cara nyari IP yg sebenernya tuh gimana ya, bingung saya..
    inginnya spt ini: jika IP proxy ada maka tulis larangan untuk mensubmit, gimana tuh crnya :D

  3. kliwon says:

    kalo’ disubmit ke file itu sendiri bs tidak y?

  4. deni says:

    saya punya ide lain, bagaimana kalau menggunakan perintah ini :
    unset($_POST);
    secara otomatis akan menghapus variabel post, tidak memerlukan penggunaan memori untuk menyimpan session dan saya rasa bisa lebih cepat.

    terima kasih, semoga bisa membantu

    silahkan berkunjung ke blog saya
    http://kjoew3dx.net
    saya tunggu ya…



Tolong beri komentar donk!

Komentar Anda akan berguna untuk kemajuan blog ini.


Mohon maaf, komentar yang menggunakan email palsu atau komentar bernada negatif atau cemooh secara otomatis akan terhapus karena dianggap spam dan tidak akan tampil dalam daftar komentar.

Dimohon jangan pula memasukkan code program dalam bentuk apapun ke dalam komentar karena akan dianggap spam.

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word