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
  • /
  • Beberapa Trik Mencegah Submit Polling Berulang Kali
PHP

Beberapa Trik Mencegah Submit Polling Berulang Kali

Dalam blog ini, saya kembali akan memaparkan ide bagaimana mencegah submit polling berulang kali. Artikel ini merupakan request dari mas Zainal (member saya)

Seseorang yang mengikuti polling hendaknya melakukan proses voting hanya sekali saja (kalau ingin main bersih sih…). Namun terkadang… script polling yang kita buat ternyata memungkinkan seorang pemilih bisa nge-vote beberapa kali dalam waktu yang berurutan. Wah.. repot juga kalau begitu. Bisa jadi hasil pollingnya gak valid. Nah… di sini saya akan coba bahas trik untuk mencegah hal tersebut.

Untuk mencegah seseorang melakukan submit polling beberapa kali dalam waktu yang berurutan, sebenarnya ada beberapa trik yang bisa dilakukan. Trik tersebut bisa memanfaatkan cookie, session ID, dan juga nomor IP si pemilih polling.

Untuk trik yang pertama, dengan memanfaatkan cookie, idenya adalah misalkan ada seseorang pemilih voting kemudian dia berhasil submit, lantas… kita taruh sebuah cookie ke dalam komputernya. Cookie tersebut ibaratnya sebagai penanda bahwa dia sudah pernah mengirim polling. Seandainya dia akan mensubmit lagi untuk yang kedua kalinya, maka proses submitnya gagal. Oleh karena itu, sebelum data polling yang dikirim oleh si pemilih itu disimpan ke database hendaknya dicek dulu keberadaan cookienya. Jika masih ada cookienya, maka data yang dikirim tidak tersimpan. Sedangkan jika cookienya tidak ada atau belum ada, maka data polling yang disubmit akan tersimpan.

Namun… kelemahan dari trik dengan cookie ini adalah bila pemilih polling tidak mengaktifkan penyimpanan cookie di browsernya, atau dengan sengaja menghapus cookienya.

Trik yang kedua, yaitu dengan menggunakan session ID di PHP. Tentu kita tahu bahwa session ID ini dihasilkan setiap kali ada user yang mengakses suatu aplikasi web. Dan kita tentu tahu pula bahwa session ID ini berupa suatu kode unik yang bersifat random. Nah… kita manfaatkan session ID ini untuk mendeteksi seseorang sudah pernah mensubmit polling atau belum. Adapun konsepnya adalah, bila seseorang sukses mensubmit pollingnya, maka session ID nya disimpan ke database. Selanjutnya bila orang ini mau mensubmit lagi, maka data polling tidak tersimpan karena session ID nya masih tersimpan di database. Oleh karena itu setelah proses submit data, hendaknya ada mekanisme pengecekan session ID pemilih. Bila session ID belum ada di database, maka data polling akan disimpan. Sedangkan bila sudah ada, maka data tidak tersimpan.

Namun.. lagi-lagi trik ini juga punya kelemahan, yaitu bila seorang pemilih menutup browser nya (exit) lalu buka lagi browser dan kembali mensubmit polling. Meskipun orangnya sama, namun session ID nya sudah berubah. Dengan kata lain, trik di atas hanya berlaku dengan asumsi pemilih polling tidak sampai menutup browsernya.

Sedangkan trik yang ketiga, konsepnya sama seperti trik kedua. Tapi dalam hal ini yang disimpan adalah nomor IP orang yang mengirim polling. Trik inipun juga punya kelemahan, yaitu bisa jadi yang ikut polling adalah orang-orang yang berada dalam suatu instansi yang sama (shared IP). Lho kok? iya… karena meskipun komputernya berbeda-beda, tapi nomor IP yang terbaca sama.

So… pilih trik yang mana donk?? hmm.. ini terserah Anda yang memilih. Tapi paling tidak, trik-trik di atas diharapkan bisa meminimalisir double voting dalam polling.

Mudah-mudahan artikel berikutnya bisa saya paparkan bagaimana mengimplementasikan ketiga trik di atas pada script PHP.

Tunggu ya mas Zainal dan para pengunjung setia blog ini… sabar 🙂

Update:
Artikel tentang cara menggunakan cookie untuk mencegah submit ganda pada polling sudah dibuat lho.. Detailnya lihat di sini.

Saya seorang dosen dan peneliti di Universitas Sebelas Maret. Bidang penelitian saya tentang: adaptive learning, datascience, dan computer aided learning. Selain itu saya juga seorang blogger, serta penulis buku tentang pemrograman, dan matematika.

Leave a Reply