warning-b

Tutorial Form PHP Part 4: Pengertian Register Global dan Register Long Array (deprecated)

Posted on

Selain menggunakan variabel SuperGlobals $_GET, $_POST dan $_REQUEST, PHP masih menyediakan cara lain bagi mengakses nilai dari form. Pada panduan kali ini kita akan Mengenal Pengertian Register Global dan Register Long Array.


Pengertian Register Global dan Register Long Array

Register Global dan Register Long Array yaitu cara lain pada PHP yang dapat digunakan bagi menampilkan hasil form, namun kedua cara ini kini telah menyandang status ‘deprecated’ yang berarti tak disarakan digunakan dan kemungkinan tak akan didukung oleh PHP di waktu mendatang. Kedua cara ini yaitu cara ’legacy’ atau warisan yang digunakan di versi PHP terdahulu.

Saya membahas Register Global dan Register Long Array hanya selaku menambah pengetahuan, karena mungkin saja kita masih mendapati kode PHP lama (terutama versi PHP 4 kebawah) yang masih menggunakan kedua cara ini.

Bagus Register Global dan Register Long Array telah tak disarankan bagi digunakan karena mempunyai celah keamanan yang gampang dibobol. Kamu disarankan bagi menggunakan variabel $_GET, $_POST atau $_REQUEST.

Update: Register Global dan Register Long Array telah tak didukung lagi pada PHP. Seandainya kamu menemukan pesan error di dikala mengaktifkan file php.ini, karenanya kamu tak dapat menjalankan contoh pada panduan ini, namun tak perlu khawatir karena bagus Register Global dan Register Long Array memang tak disarankan digunakan lagi.


Cara Mengakses Nilai Form dengan Register Global

Register Global yaitu sebuah cara pada PHP yang ‘mempermudah’ pengambilan nilai form dengan cara menjadikan atribut nama dari objek form secara otomatis menjadi variabel di pada PHP.

Misalkan kita mempunyai objek form sebuah inputan dengan kode HTML selaku berikut:

Karenanya di pada halaman PHP, akan seketika terdapat sebuah variabel $user_name yang berisi nilai dari objek form tersebut dan siap bagi diakses, terlepas dengan cara apa form tersebut dikirim (apakah get atau post)

Pada versi PHP 5.5 bawaan XAMPP yang saya gunakan, Register Global telah tak didukung lagi. Namun sekiranya kamu menggunakan PHP versi lama dan ingin mencobanya, karenanya kita mesti mengubah sebuah settingan PHP pada file php.ini. (cara mengubah setingan file php.ini pernah dibahas pada Cara Merubah File Konfigurasi php.ini)

Bukalah file php.ini, lalu cari peroleh baris setingan berikut:

Kemudian aktifkan fasilitas ini menjadi:

 Setelah diubah, save file php.ini, dan matikan web server apache (dari XAMPP Control panel), lalu aktifkan lagi (restart). Hal ini diperlukan agar web server Apache dapat membaca perubahan setingan PHP yang baru saja kita lakukan.

Berikutnya, mari kita gunakan kembali halaman form.html selaku contoh form. Seandainya kamu belum membuah file tersebut, berikut yaitu kode HTML yang dibutuhkan:

 Pada percobaan Register Global ini, kita tak akan menjalankan perubahan apa-apa di halaman form.html, namun di file proses.php, ubahlah menjadi:

Silahkan mencoba form tersebut, dan sekiranya setingan register_globals telah aktif, karenanya hasil form akan tampil dari yang contoh-contoh kita sebelumnya. Kamu pun dapat mengubah cara pengiriman form dari method=get menjadi method=post dan halaman proses.php akan menampilkan hasilnya dengan sukses.

Sepintas cara pengaksesan nilai form seperti ini amat mempermudah penulisan program, namun register global mempunyai celah keamanan yang dapat berdampak fatal. Hal ini terjadi karena pengunjung laman dapat ‘memasukkan’ variabel PHP ke pada halaman kita.

Misalkan kita mempunyai sebuah halaman login.php yang berfungsi bagi memproses hak akses bagi dapat masuk ke situs, dan kode PHP nya yaitu selaku berikut:

Sekarang ini, sekiranya register_global = on, seseorang dapat ‘melompati’ bagian validasi tersebut dengan menuliskan tempat tinggal URL berikut:

Dengan mengetikkan tempat tinggal tersebut, variabel $hak_akses akan seketika bernilai true di pada halaman login.php, sehingga seseorang dapat mengakses program kita tanpa via proses validasi user. Karena hal inilah, mengaktifkan register global dianggap berbahaya dan tak disarankan.


Cara Mengakses Nilai Form dengan Register Long Array

Cara lain bagi mengambil nilai dari form yaitu menggunakan Register Long Array. Sesuai dengan namanya, Register Long Array mempunyai nama variabel yang lebih panjang sekiranya dibandingi variabel lazimnya (variabel $_GET dan $_POST).

Bagi mengambil nilai form yang dikirim dengan method=get, kita menggunakan $HTTP_GET_VARS, dan bagi method=post menggunakan $HTTP_POST_VARS.

Sama seperti Register Globals, Register Long Array tak didukung lagi bagi PHP versi terbaru. Seandainya kamu mempunyai PHP versi lama dan ingin mencobanya, lakukan perubahan settingan php.ini bagi alternatif register_long_arrays=on, seperti gambar berikut ini:

 Setelah itu, restart web server apache menggunakan XAMPP Control Panel.

Selaku contoh, masih menggunakan halaman form.html, kali ini saya akan mengubah halaman proses.php menjadi:

Dan sekiranya tak ada masalah, kode program tersebut akan menampilkan hasil inputan form dari halaman form.html.

Register Long Array tak disarankan lagi karena PHP telah mempersembahkan metoda variabel $_GET dan $_POST yang lebih mudah.


Pada panduan kali ini, kita telah mempelajari cara mengakses nilai form menggunakan Register Globals dan Register Long Array. Kedua cara ini telah tak digunakan lagi, dan saya membahasnya karena mungkin kita masih menemukan kode PHP lama yang masih menggunakannya.

Pada panduan form PHP berikutnya, kita akan menggunakan variabel super global $_GET dan $_POST bagi menampilkan hasil form.


Sumber https://www.duniailkom.com/