Masino Sinaga

Web Development and PHPMaker

Anda di sini: Beranda / PHPMaker / Hati-hati Menggunakan Global Function ew_CurrentUserIP() di PHPMaker
Row_CustomAction di PHPMaker Sekarang Bisa Lewat AJAX Atau HTTP POST
Menyaring Record Tapi Pengguna Tetap Dapat Melihat Semua Record di PHPMaker

Hati-hati Menggunakan Global Function ew_CurrentUserIP() di PHPMaker

Ming, 7 Februari 2016 oleh Masino Sinaga 6 Komentar

PHPMaker memiliki sebuah global function yang bernama ew_CurrentUserIP() untuk mendapatkan IP Address dari komputer Pengguna ketika mengakses Aplikasi Web yang dibangkitkan oleh PHPMaker. Kita sebagai Web Developer dapat menggunakan fungsi global ini misalnya untuk mendeteksi apakah Aplikasi Web itu diakses dari komputer yang sama dengan web server berada (localhost), atau diakses dari komputer yang berbeda dengan web server berada (remote).

Tapi, tahukah Anda, bahwa jika fungsi global tersebut diakses dari browser yang berbeda, maka hasilnya pun akan berbeda pula? Mungkin di antara Anda masih ada yang belum menyadari bahwa global function ew_CurrentUserIP() jika diakses dari bebeberapa browser berikut: Mozilla Firefox, Internet Explorer, Opera, Google Chrome, dan Torch, maka hasilnya akan mengembalikan nilai IP Address yang tidak sama. Nah, lho! Kok bisa?

Diawali dari rasa penasaran adanya Aplikasi Web yang dihasilkan oleh PHPMaker ketika saya jalankan di localhost hasilnya seolah tidak dapat mengenali file css. Tampilan Aplikasi Web menjadi berantakan, sama seperti jika tidak menggunakan style dari file css. Hal ini terbukti ketika saya melihat View Source dari halaman yang pertama kali tampil. Setting dinamis css yang diambil dari Database sama sekali tidak terbaca.

Tapi yang anehnya adalah, kejadian itu hanya terjadi di beberapa browser saja. Tidak semua browser. Selain itu, jika Aplikasi Web ini diakses dari remote server (bukan di localhost), maka sama sekali tidak ada masalah. Semua browser bisa menampilkan Aplikasi Web tersebut dengan normal. Aplikasi Web dapat membaca setting Database dengan baik jika diakses dari komputer remote. Akhirnya, saya mengambil sebuah kesimpulan, bahwa ada masalah saat membaca setting Database saat Aplikasi Web dijalankan di localhost, dan hanya untuk beberapa browser saja.

Setelah ditelusuri lebih lanjut, ternyata hal ini disebabkan karena adanya kode PHP yang saya tambahkan di server event Database_Connecting yang melibatkan fungsi global ew_CurrentUserIP() tadi. Artinya, jika kode PHP tersebut saya hapus, maka style dan tema Aplikasi Web kelihatan normal sebagaimana mestinya. Aplikasi Web dapat membaca setting css dari Database menggunakan setting Database di file konfigurasi yang dibangkitkan oleh PHPMaker. Ahaa! Mulai semakin terlokalisir penyebab masalah ini.

Ternyata ada satu baris kode PHP yang sering digunakan di server event Database_Connecting yang menyebabkan Aplikasi Web tidak dapat membaca setting Database dengan normal, yaitu:

if (ew_CurrentUserIP() == "127.0.0.1") { // testing on local PC

Jika kita telusuri lebih dalam lagi, ternyata isi dari fungsi global ini adalah menjalankan kode PHP berikut:

$_SERVER["REMOTE_ADDR"]

Hanya browser Mozilla Firefox dan Internet Explorer yang dapat membaca kode di atas dengan benar. Sedangkan untuk tiga browser terakhir, yaitu: Opera, Google Chrome, dan Torch selalu tidak akan pernah mengenali kondisi tadi. Dengan kata lain, ketiga browser tersebut mengembalikan nilai ::1.

Lalu bagaimana solusinya? Kode PHP di atas seharusnya diubah menjadi seperti ini:

if (ew_CurrentUserIP() == "127.0.0.1" || ew_CurrentUserIP() == "::1" || ew_CurrentHost() == "localhost") { // testing on local PC  

Itu adalah kode PHP yang paling aman jika Anda ingin menyertakan setting Database untuk localhost pada server event Database_Connecting. Untungnya, PHPMaker juga mempunyai fungsi global lain yang bernama ew_CurrentHost() yang akan mengembalikan nilai localhost pada komputer yang sama dengan web server berada. Semakin lebih aman lagilah jika kita menggunakan fungsi global yang terakhir ini.

Dari beberapa referensi di Internet yang saya temukan hari ini, ternyata nilai ::1 adalah nilai IP Address yang merupakan ipv6 loopback address. Nilai tersebut sama dengan nilai IP Address 127.0.0.1 pada ipv4. Artinya, kedua nilai IP Address tersebut sama-sama mengacu pada localhost.

Satu lagi ilmu baru yang layak untuk sama-sama kita ketahui. Jangan berterima kasih ke saya. Berterima kasihlah kepada Google dan PHPMaker. Dan yang lebih utama lagi, beterima kasihlah kepada Tuhan Yang Maha Pengasih, yang sudah memberikan kesempatan kepada kita untuk mengetahui perbedaan tersebut.

Ditempatkan di bawah: PHPMaker Ditag dengan:Belajar PHPMaker, Database_Connecting, ew_CurrentUserIP, IP Address, localhost, PHPMaker Indonesia, remote, Server Events, Tutorial PHPMaker

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.

Row_CustomAction di PHPMaker Sekarang Bisa Lewat AJAX Atau HTTP POST
Menyaring Record Tapi Pengguna Tetap Dapat Melihat Semua Record di PHPMaker

Komentar

  1. sidik mengatakan

    Kam, 12 Mei 2016 pada 11:34 am

    Pak Masino saya pemula dan ingin bertanya, saya ingin upload hasil phpmaker kesaya ke hosting (internet), saat saya run semunya normal namun ada kendala saat saya ingin export ke pdf, pdf tidak mau muncul,

    Jika saya liat di console crome

    jquery-1.12.0.min.js:3 GET http://**/com/calon_pelanggansmry.php?export=pdf&custom=1&exportid=f9gb8pqn9jlmf3ogh4topips77_1463027232721 500 (Internal Server Error)

    Saya menggunakan PHPMaker dan PHP Report Maker.

    Di PHPMaker saya harus setting apa?
    Di PHP Report Maker saya harus setting apa?

    Trims.

    Balas
    • Masino Sinaga mengatakan

      Kam, 12 Mei 2016 pada 4:36 pm

      Pastikan setting koneksi ke database di server hosting sudah dibuat dan benar. Gunakan server event Database_Connecting untuk membuat koneksi Database yang dinamis.

      Baca dan pelajari topik Server Events and Client Scripts dari menu Help PHPMaker.

      Balas
  2. sidik mengatakan

    Sab, 14 Mei 2016 pada 4:11 pm

    Dear Pak Masino terima kasih untuk informasinya, saat ini sudah bisa.

    Balas
    • Masino Sinaga mengatakan

      Sab, 14 Mei 2016 pada 4:20 pm

      Sama-sama.

      Balas
  3. Eka dalas pangestu mengatakan

    Sel, 1 Maret 2022 pada 3:39 am

    Pak masino saya mau bertanya bagaimana agar phpmaker yang kita buat hanya dapat diakses menggunakan browser chrome saja ?

    Balas
    • Masino Sinaga mengatakan

      Sel, 1 Maret 2022 pada 9:57 am

      Google php restrict browser types

      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

  • Mudahnya Mengubah Nilai Delay Auto Hide Success Message di PHPMaker 2025
  • Mudahnya Berpindah Layout dari Table ke Cards di Halaman List lewat PHPMaker 2025
  • Jangan Lupa Pakai AdjustSql Saat Insert atau Update Data Lewat ExecuteStatement
  • File-File yang Wajib Diperhatikan Setelah Menambah Item User Values di PHPMaker 2025
  • Begini Cara Memuat Tables dari Database Secara Dinamis di PHPMaker 2025

Menu

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

Komentar Terbaru

  • Masino Sinaga pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Nano pada Mudahnya Menyesuaikan Timezone di Calendar Report pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Charly pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023
  • Masino Sinaga pada Mudahnya Menyembunyikan Tombol Master/Detail di Halaman View pada PHPMaker 2023

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