About Me

Hai, saya Rosihan Ari Yuana. Saya sehari-hari adalah mengajar di Universitas Sebelas Maret.

Bidang riset saya tentang adaptive learning, computer aided learning, dan datascience

Selain itu, saya juga seorang penulis buku dan blogger.

More about me...

  • Home
  • /
  • PHP
  • /
  • Script PHP untuk Mencegah Submit Form Berulang Kali
PHP

Script PHP untuk Mencegah Submit Form Berulang Kali

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

<form method="post" action="submit.php">
<p>Masukkan nama Anda: <input name="nama" type="text" /></p>
<p><input type="submit" /></p>
</form>

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

<?php
// memulai session
session_start();

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

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

<form method="post" action="submit.php">
<p>Masukkan nama Anda: <input name="nama" type="text" /></p>
<p><input type="submit" /></p>
</form>

Nah selanjutnya kita buat script untuk memproses submitnya.

submit.php

<?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'];
     }
?>

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.

 


Beli Buku Pemrograman

5 Langkah Mudah Menguasai React Native
Rahasia Inti Master PHP & MySQLi (Improved)
Jalan Pintas Menjadi Master React JS
Trik Kolaborasi React dengan PHP & MySQL

Article by Request

Anda belum memahami konsep pemrograman PHP Native, Python, Java, atau SQL? atau Anda belum punya ide penyelesaian dari studi kasus yang dihadapi sampai saat ini.

Silakan manfaatkan layanan Article by Request di blog ini.

Bagikan artikel ini jika bermanfaat !

Assalaamu'alaikum.. aktivitas keseharian saya mengajar di Universitas Sebelas Maret, dengan matakuliah pemrograman dan basis data. Adapun bidang penelitian saya tentang computational thinking dan computer-aided learning.

Leave a Reply