Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Mudahnya Mengambil Informasi Pengguna Setelah Login di Aplikasi Web dari PHPMaker
Mudahnya Menerapkan Hak Akses yang Dinamis di Aplikasi Web dari PHPMaker
Alternatif Validasi Pengguna Aplikasi Web dari PHPMaker

Mudahnya Mengambil Informasi Pengguna Setelah Login di Aplikasi Web dari PHPMaker

Sen, 19 Mei 2014 oleh Masino Sinaga 28 Komentar

Sebagai Web Developer, pernahkah Anda mengalami kesulitan ketika akan menampilkan informasi yang terkait Pengguna yang sudah berhasil login ke Aplikasi Web yang Anda bangun? Katakanlah di halaman yang pertama kali muncul setelah Pengguna berhasil login, Anda ingin menampilkan pesan selamat datang yang disertai dengan nama lengkap Pengguna tersebut. Biasanya, Web Developer melakukan query ulang ke database untuk mengambil data Pengguna berdasarkan ID Pengguna atau Username yang berhasil login tadi.

Melakukan query ulang ke database adalah cara konvensional atau paling kuno yang paling sering dilakukan oleh Web Developer. Mengapa? Karena dengan melakukan query ulang, maka Anda membuka koneksi ke database lagi, sehingga melakukan satu proses tambahan ke database yang bisa menambah waktu. Seharusnya, pada saat Pengguna berhasil login, sistem harus bisa menyediakan informasi Pengguna, karena data Pengguna sudah berhasil divalidasi.

Pertanyaannya adalah: Bagaimana caranya? Bagaimana menghindari melakukan koneksi dan query ulang ke database tadi? Apakah ada cara yang lebih efektif, sekaligus efisien untuk mendapatkan informasi Pengguna yang sudah berhasil login? Jawabannya: Tentu saja ada!

PHPMaker dapat mengatasi hal ini dengan sangat mudah dan cepat. PHPMaker telah menyediakan sebuah server event yang bernama User_Validated, yang dapat Anda akses dari lokasi: Server Events -> Global -> All Pages di project PHPMaker Anda. Seperti namanya, server event ini dieksekusi setelah Pengguna berhasil Login ke Aplikasi Web. Artinya, data Pengguna tersebut telah berhasil divalidasi oleh sistem.

Perlu diingat, bahwa server event ini merupakan member dari Class Security. Artinya, Anda dapat mengakses member lainnya secara langsung di class tersebut (jika dibutuhkan). Hal lain yang perlu diingat adalah, server event User_Validated tidak berlaku untuk Login yang dilakukan oleh Administrator menggunakan fitur Administrator Login (Hard-coded) yang terdapat di menu tab Security dari aplikasi PHPMaker. Anda sebagai Web Developer harus memastikan bahwa kode ini tidak diterapkan untuk Pengguna System Administrator.

Informasi Pengguna dilewatkan ke server event tersebut sebagai sebuah array. Argumen yang digunakan di server event ini adalah $rs. Anda bisa mendapatkan informasi Pengguna yang sedang login, lalu menggunakannya sesuai dengan kebutuhan di Aplikasi Web Anda. Contoh, di tabel users pada database yang Anda gunakan sebagai tabel untuk memverifikasi data Pengguna, terdapat field Nama_Lengkap. Anda bisa mendapatkan nilai dari field tersebut cukup dengan menggunakan $rs[“Nama_Lengkap”].

Berikut ini contoh kode yang dapat Anda gunakan untuk server event User_Validated:

function User_Validated(&$rs) {
    if (IsLoggedIn() && !IsSysAdmin()) {
        $_SESSION['UserNamaLengkap'] = $rs['Nama_Lengkap'];
    }
}

Seperti yang Anda lihat dari kode tersebut, kita harus menangani kode ini hanya untuk Pengguna yang bukan Administrator yang login menggunakan fitur Administrator Login (Hard-coded) yang dapat Anda tentukan dari PHPMaker. Itu artinya, kita mengecualikan kode ini hanya untuk Pengguna yang System Administrator (Sys Admin).

PHPMaker telah menyediakan sebuah function untuk mendeteksi apakah Pengguna yang sedang login adalah Sys Admin atau bukan. Cukup dengan menggunakan !IsSysAdmin() untuk memastikan bahwa Pengguna bukan Sys Admin. Kita juga harus memastikan bahwa status Pengguna sudah login dengan menggunakan fungsi global di PHPMaker: IsLoggedIn(), karena jika tidak, maka akan menimbulkan error.

Jika kedua kondisi di atas tadi dipenuhi, maka dalam contoh tersebut kita dapat memperoleh data Nama Lengkap Pengguna (yang diambil dari field yang bernama Nama_Lengkap). Tentu saja kita asumsikan nilai field tersebut bukanlah string kosong. Hasilnya lalu kita tampung ke dalam sebuah variabel session yang bernama UserNamaLengkap. Karena telah ditampung ke variabel session, maka data ini bisa langsung Anda gunakan dari halaman apapun di Aplikasi Web Anda.

Dengan menggunakan server event User_Validated, maka Anda tidak perlu repot-repot melakukan query ulang ke database. Anda juga dapat memastikan bahwa data Pengguna yang diambil sudah valid, karena sudah divalidasi oleh sistem saat berhasil login ke Aplikasi Web.

Wouw! Betapa mudahnya mengimplementasikan business-logic di Aplikasi Web yang dibangun oleh PHPMaker. 🙂

Ditempatkan di bawah: PHPMaker Ditag dengan:IsLoggedIn, IsSysAdmin, PHPMaker Indonesia, security, Security Settings, Server Events, User_Validated

Masino Sinaga

Web Developer pengguna PHPMaker untuk membangun Aplikasi Web sejak tahun 2004. Sampai sekarang masih aktif dan rajin membagikan pengalamannya menggunakan PHPMaker melalui situs masinosinaga.com, ilovephpmaker.com, dan phpmakerprojects.com.

Mudahnya Menerapkan Hak Akses yang Dinamis di Aplikasi Web dari PHPMaker
Alternatif Validasi Pengguna Aplikasi Web dari PHPMaker

Komentar

  1. caksobri mengatakan

    Sen, 19 Mei 2014 pada 10:29 am

    Field nama lengkap apakah harus satu tabel dengan username ?

    Balas
    • Masino Sinaga mengatakan

      Sen, 19 Mei 2014 pada 10:36 am

      Betul sekali! 🙂

      Balas
  2. Herman mengatakan

    Sel, 20 Mei 2014 pada 1:04 pm

    Jika saya ingin menampilkan informasi nama_lengkap ini pada header atau footer. Di mana saya menambahkan / menempatkan script ini pada Code (Server Event, Client Scipts and Custum Templates) tanpa saya harus merubah file hasil yang digenerated oleh PHPMaker.

    Terima Kasih Pak.

    Balas
    • Masino Sinaga mengatakan

      Sel, 20 Mei 2014 pada 2:55 pm

      Kalau tepat di dalam Header atau di dalam Footer belum ada server event khusus yang tersedia untuk itu. Meskipun demikian, ada dua server event yang mendekati dengan posisi Header atau Footer, masing-masing: Page_DataRendering dan Page_DataRendered.

      Alternatif lainnya, Anda bisa membuat extension. Salah satu extension yang bisa digunakan sebagai contoh adalah MasinoHeaderFooter10.

      Balas
      • Herman mengatakan

        Sel, 20 Mei 2014 pada 2:59 pm

        Baik Pak terima kasih atas bantuan dan solusinya

        Balas
        • Masino Sinaga mengatakan

          Rab, 21 Mei 2014 pada 7:10 pm

          Sama-sama.

          Balas
  3. elang mengatakan

    Sen, 2 Juni 2014 pada 4:08 pm

    Pak, saya mau tanya. Kalau cara insert otomatis ke database bagaimana caranya? Misalkan data Created, Createby, Modifed, Modifedby, Deleted, Deletedby, IPServer.

    Balas
    • Masino Sinaga mengatakan

      Sel, 3 Juni 2014 pada 9:55 am

      Dari project PHPMaker, pergi ke Fields setup -> General -> Auto-Update Value, lalu pilih CurrentUsername() untuk field Modifiedby, pilih ew_CurrentDateTime() untuk field Modified. Sedangkan untuk Created dan Createby copy-paste kedua function tadi ke kolom Add Page -> Default Value.

      Khusus untuk Deleted and Deletedby, Anda bisa menggunakan server event Row_Deleting (baca Server Events and Client Scripts di help file untuk informasi lebih lanjut dan contoh-contoh kode-nya).

      Balas
      • Elang mengatakan

        Kam, 5 Juni 2014 pada 3:20 am

        makasih atas jawabannya.
        ada lagi pertanyaanya bagaimana cara nya tampilkan data berdasarkan account login.
        misalkan : login user01 makanya data yg tampil hanya yg di input oleh user01 tersebut aja (bukan data profile).
        trus bagaimana cara mengubah tampilan pada gridview. misalkan cuma ada tombol edit dan view aja.

        makasih atas jawabannya.

        Balas
        • Masino Sinaga mengatakan

          Kam, 5 Juni 2014 pada 8:33 am

          Untuk menampilkan data yang diinput oleh user yang sedang login itu saja, silahkan baca dan ikuti topik Tutorial – Advanced Security – User ID Security yang terdapat di file Help aplikasi PHPMaker.

          Sedangkan untuk menampilkan hak akses Edit dan View saja, silahkan baca dan ikuti topik Tutorial – Advanced Security – Dynamic User Level Security di file Help aplikasi PHPMaker.

          Balas
  4. Hamsah mengatakan

    Jum, 13 Juni 2014 pada 7:37 am

    Pak kalo kita mau melakukan auto-fill berdasarkan dari info user yang sedang login bagaimana yah?
    misalnya:
    tabel user isinya: userid, password, nama, bagian
    tabel yang disi : tinggi badan, berat, golongan darah, usia, userid, nama, bagian,

    saya ingin setelah user login maka kolom muncul yang disi user hanya: tinggi badan, berat badan, golongan darah, dan usia, sedangkan untuk userid, nama, bagian otomatis terisi dari lookup data pada tabel user.

    terima kasih atas jawabannya.

    Balas
    • Masino Sinaga mengatakan

      Ming, 15 Juni 2014 pada 1:39 am

      Prinsipnya, Anda tinggal me-redirect saja ke halaman Edit milik table users yang mengelola data Pengguna tadi begitu Pengguna berhasil login. Gunakan server event Page_Redirecting yang lokasinya di bawah: Server Events -> Other -> Default Page.

      Baca Server Events and Client Scripts di file Help yang disediakan oleh PHPMaker untuk informasi dan contoh lebih lanjut.

      Balas
  5. ghani mengatakan

    Rab, 19 Agustus 2015 pada 10:35 am

    kalau ingin menampilkan data berdasarkan session bs ga?trus bagaimana caranya?
    misal select * from table where session

    Balas
    • Masino Sinaga mengatakan

      Rab, 19 Agustus 2015 pada 10:59 am

      Tergantung data apa yang mau diambil dari session.

      Balas
  6. andika mengatakan

    Rab, 30 Januari 2019 pada 11:36 am

    Pak masino , izin tanya
    saya ingin menampilkan foto berdasarkan user login, tapi yang muncul malah nama file foto nya
    berikut code nya di client script->Global-> Startup script :

    $(document).ready(function() {
    $(“#ewHeaderRow”).append(
    “ <?php echo "User : ” . CurrentUserInfo(“First_Name”) . ” ” . CurrentUserInfo(“Last_Name”) . “ “; ?> “);
    });

    mohon solusinya :

    Balas
    • Masino Sinaga mengatakan

      Rab, 30 Januari 2019 pada 3:44 pm

      Karena memang kode Anda tersebut untuk menampilkan nilai dari field First_Name dan Last_Name. Jika ingin menampilkan foto, berarti Anda harus mengambil nama file foto-nya, lalu gunakan tag img src untuk menampilkan foto sebagaimana mestinya.

      Balas
      • Andika mengatakan

        Rab, 30 Januari 2019 pada 10:57 pm

        Maaf pak Masino, code nya seperti ini

        $(document).ready(function() {
        $(“#ewHeaderRow”).append(
        “  “);
        });
        
        Balas
        • Masino Sinaga mengatakan

          Kam, 31 Januari 2019 pada 10:54 am

          Kode di atas tidak akan menghasilkan apapun, alias hanya menambah string kosong.

          Balas
          • andika mengatakan

            Kam, 31 Januari 2019 pada 1:23 pm

            sudah fix pak masino, terima kasih
            izin tanya lagi pak,
            kalo mau menampilkan image dari database dengan autofill yang ada di Lookup Table gmn pak ??
            saya sudah setting dan yang tampil hanya nama file imagenya saja pak, gmn caranya agar pada saat autofill yang muncul dalam format Image pak ??

            terima kasih

            Balas
            • Masino Sinaga mengatakan

              Kam, 31 Januari 2019 pada 4:59 pm

              Ada settingan bernama Auto-fill original value dari Tools -> Advanced Settings. Coba Anda aktifkan lalu generate ulang lagi semua file script, lalu coba lagi. Jika masih belum bisa, nonaktifkan setting tersebut, lalu generate ulang lagi semua file script, lalu coba kembali. Intinya, coba bermain-main dengan settingan tersebut, siapa tau ada pengaruhnya. Kabarkan hasilnya ya.

              Balas
  7. Murniyati mengatakan

    Jum, 10 Maret 2023 pada 10:56 pm

    Izin bertanya pak Masino
    Jika saya ingin menampilkan username yang sedang login pada field tertentu pada saat form ADD, bagaimana ya

    Balas
    • Masino Sinaga mengatakan

      Sab, 11 Maret 2023 pada 10:02 am

      Tergantung field tersebut menggunakan control Combox dengan Lookup Table, atau menggunakan control Textbox.

      Kalau menggunakan Combobox yang lookup ke table user, maka bisa menggunakan kode berikut:

      if (CurrentPageID() == "add") {
          $this->MyFieldName->CurrentValue = CurrentUserName(); // ganti MyFieldName dengan nama field yang sebenarnya
      }
      

      Kalau menggunakan Textbox, maka bisa menggunakan kode berikut:

      if (CurrentPageID() == "add") {
          $this->MyFieldName->EditValue = CurrentUserName(); // ganti MyFieldName dengan nama field yang sebenarnya
      }
      
      Balas
      • Murniyati mengatakan

        Sel, 14 Maret 2023 pada 7:07 am

        Lalu, bagaimana jika dalam 1 form ADD yang ingin kita tampilkan banyak field : username, FirstName,Address, dan Phone.

        Keduanya, Saya terapkan dibeberapa field terdapat error : Attempt to assign property “CurrentValue” on null

        Balas
        • Masino Sinaga mengatakan

          Sel, 14 Maret 2023 pada 8:10 am

          Ya tinggal ulangi kode yang sama untuk field terkait lainnya.

          Kode yang saya berikan di atas taruh di server event Row_Rendered.

          Balas
          • Murniyati mengatakan

            Sel, 14 Maret 2023 pada 10:30 am

            Sudah dicoba tapi ada notice : Notice: Indirect modification of overloaded property

            Balas
            • Masino Sinaga mengatakan

              Sel, 14 Maret 2023 pada 10:41 am

              Kodenya seperti apa?

              Balas
  8. adji mengatakan

    Sel, 16 Mei 2023 pada 2:24 pm

    pak masino, untuk pengaturan hanya menampilkan data sesuai dengan login nya gimana yah??

    Balas
    • Masino Sinaga mengatakan

      Sel, 16 Mei 2023 pada 4:59 pm

      Bisa menggunakan server event Recordset_Selecting.

      Balas

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

  • Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Solusi Buat Field Lookup Table yang Bermasalah di Server Hosting
  • Hati-Hati Meredirect Pengguna Setelah Login di PHPMaker 2025
  • Ini Alasan Mengapa Kalian Harus Selalu Pakai PHPMaker versi Terakhir
  • Masino Extensions for PHPMaker 2025 Now Changed!

Menu

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

Komentar Terbaru

  • Charly pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker
  • Nanda pada Cara Menampilkan Tombol Close di Footer Modal buat Custom File yang SkipHeaderFooter-nya Bernilai True
  • Nanda pada Mudahnya Menghitung Saldo per Transaksi di Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Menonaktifkan Field Tertentu Saat Data Diubah pada Aplikasi Web dari PHPMaker
  • Masino Sinaga pada Mudahnya Menambahkan Beberapa Kondisi pada String Filter di PHPMaker

Situs Terkait

  1. I Love PHPMaker
  2. Situs Resmi PHPMaker
  3. Forum Diskusi PHPMaker
  4. PHPMaker di IlmuKomputer.com
  5. PHPMaker Projects
  6. PHPMaker Learning

Baru di PHPMaker?

Baca ini terlebih dulu ...

  1. Ayo Menjadi Web Developer yang Cerdas!
  2. PHPMaker: PHP Code Generator + PHP Framework
  3. Pertanyaan-Pertanyaan yang Paling Sering Diajukan Seputar PHPMaker
  4. Tips buat Anda Pemula yang Baru Mengenal dan Menggunakan PHPMaker
  5. Bacalah Help, Bacalah Help, dan Bacalah Help di PHPMaker!

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