Masino Sinaga

A Web Developer Who Helps Web Developers

Anda di sini: Beranda / PHPMaker / Mencegah Pengguna Akhir Mengubah Data Melalui Akses URL di PHPMaker 2021
Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021
Menyembunyikan Tombol Edit Berdasarkan Kondisi Tertentu dari PHPMaker 2021

Mencegah Pengguna Akhir Mengubah Data Melalui Akses URL di PHPMaker 2021

Sen, 2 Agustus 2021 oleh Masino Sinaga 4 Komentar

Ada satu pertanyaan yang cukup bagus terkait dengan artikel Menyembunyikan Tombol Edit Berdasarkan Kondisi Tertentu dari PHPMaker 2021.

Sekedar mengingatkan kembali, artikel di atas menjelaskan betapa mudahnya kita dapat menyembunyikan tombol atau link Edit yang menampilkan form Edit untuk mengubah data. Artinya, meskipun kita dapat menyembunyikan tombol Edit tadi, maka Pengguna Akhir masih tetap dapat mengakses halaman Edit melalui URL-nya. Cukup dengan menyalin link tersebut ke browser, maka form Edit akan terbuka.

Tentu saja kemungkinan-kemungkinan seperti itu harus bisa ditangani. Artinya, kita harus dapat mencegah Pengguna Akhir mengubah data hanya untuk kriteria tertentu sesuai dengan yang sudah kita bahas pada artikel di atas tadi. Jangan sampai Pengguna Akhir bisa mengakali dengan langsung akses lewat URL halaman Edit-nya.

Caranya bagaimana? Ternyata gampang sekali. Kita cukup menggunakan server event Row_Selected. Seperti namanya, server event ini akan dipanggil oleh sistem ketika Pengguna baru saja berhasil memilih suatu record tertentu.

Kita bisa menggunakan server event ini untuk menambahkan business-logic yang akan mencegah Pengguna Akhir mengakses record tertentu. Jadi, ketika halaman Edit untuk record tertentu diakses, maka kita bisa mencegahnya untuk mengakses halaman tersebut.

Katakanlah kita masih menggunakan contoh yang sama yang dibahas pada artikel di atas, maka kita cukup menambahkan sedikit kode PHP saja ke dalam server event Row_Selected yang lokasinya berada di bawah Server Events -> Table-Specific -> Common, milik table orders:

// Row Selected event
function Row_Selected(&$rs)
{
    //Log("Row Selected");
    if ($rs["OrderID"] != "11085" && CurrentPageID() == "edit") {
        $this->setFailureMessage("Anda tidak diijinkan mengubah data pesanan dengan ID = 11085");
        $this->terminate("orderslist");
    }
}

Kode di atas artinya, jika Pengguna Akhir mengakses langsung halaman Edit untuk record dengan OrderID = 11085, dengan cara menyalin URL yang bertalian ke browser, maka sistem akan mencegah, dengan menampilkan pesan Anda tidak diijinkan mengubah data pesanan dengan ID = 11085. Setelah itu, sistem akan otomatis me-redirect ke halaman List milik table orders.

Betapa mudah dan cepat sekali, bukan? Tidak perlu menulis kode sampai berpuluh-puluh, beratus-ratus, atau bahkan beribu-ribu baris. Mengapa? Karena PHPMaker 2021 sudah menangani sisanya. Kita hanya cukup menambahkan sedikit kode PHP itu saja.

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, PHPMaker 2021, PHPMaker Indonesia, Row_Selected, Server Events, Tutorial PHPMaker

Membuat URL yang SEO-Friendly Tanpa Menggunakan Nama Table di PHPMaker 2021
Menyembunyikan Tombol Edit Berdasarkan Kondisi Tertentu dari PHPMaker 2021

Komentar

  1. luthfi mengatakan

    Sab, 14 Agustus 2021 pada 9:48 am

    kang mau nanya kalo kita menggunakan costume file untuk creat table tapi ada list_optionsnya gimana ya, saya tadinya mau pake function bawaan ExecuteHtml($sql,[options]), tapi nyari options yang buat list options tidak ada ya kang ? btw saya menggunakan v2020

    Reply
    • Masino Sinaga mengatakan

      Sab, 14 Agustus 2021 pada 9:58 am

      Kalau pakai function ExecuteHtml, kita tidak dapat menambahkan fitur ListOptions seperti di halaman List yang di-generate oleh PHPMaker.

      Kalau ingin menggunakan ListOptions, disarankan tetap menggunakan halaman List hasil generate dari PHPMaker kang.

      Reply
  2. luthfi mengatakan

    Sab, 14 Agustus 2021 pada 1:05 pm

    Oke Kang Masino Terimakasih… atas saranya

    Reply
    • Masino Sinaga mengatakan

      Ming, 15 Agustus 2021 pada 7:58 am

      Sama-sama.

      Reply

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses

Pos-pos Terbaru

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7
  • Alasan 20 Harus Pakai Masino Extensions: Maximum Record per Page
  • Alasan 19 Harus Pakai Masino Extensions: Custom Breadcrumb Links
  • Alasan 18 Harus Pakai Masino Extensions: Improvement User Level Permissions
  • Alasan 17 Harus Pakai Masino Extensions: Dynamic Permission for Export Data

Menu

  • Siapa Saya?
  • Web Development
  • PHPMaker
  • Umum
  • Syarat dan Ketentuan
  • Sitemap (Peta Situs)
  • Komentar

Komentar Terbaru

  • Alasan 21 Harus Pakai Masino Extensions: Form Wizard dengan jQuery SmartWizard v7 pada Alasan 10 Harus Pakai Masino Extensions: Form Wizard
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Masino Sinaga pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025
  • Charly pada Kode Javascript yang Berubah di PHPMaker 2026 dari PHPMaker 2025

(c) Masino Sinaga 2009 - 2026 | WordPress | Catat masuk | Kembali ke atas