blog

Register Global On dan Off

February 28th, 2005

Ada pertanyaan menarik dari milis PHP yang sering saya ikuti. Hal ini sering sekali ditanyakan, dan banyak juga yang malas menjawab, karena terlalu seringnya masalah ini dibahas dan ditanyakan.

Fren, saya org yg sedang belajar utk menjadi programmer PHP, tapi script login.php saya tidak pernah mau konek ke database saat saya masukkan username dan password. Saya menggunakan PHP versi 4.3.6, Apache versi 2.0.49, phpmyadmin versi 2.6.0, MySQL.

Kebetulan, hari Minggu kemarin jalan-jalan sebentar ke Gramedia. Sambil melihat-lihat perkembangan buku-buku lokal. Saat awal-awal dibangku kuliah dulu, minimal selama dua bulan saya membeli satu buku komputer. Uangnya dari honor sebagai Asisten Lab, dan terkadang meminta tambahan dari orang tua :D. Sejak saya lebih dalam mengenal internet, mencari tutorial, pembahasan, dan contoh-contoh aplikasi, minat beli terhadap buku komputer menurun drastis. Ditambah lagi, buku-buku yang ada hanya menyajikan hal yang melulu. Tak ada pembahasan yang lebih menarik, dan lebih mendalam.

Kembali kepada pertanyaan diatas, masalah yang ada hanya berkutat pada Register Global. Rata-rata buku PHP yang beredar ditanah air, menerapkan Register Global yang bernilai On. Padahal hal ini sudah dianjurkan dan secara default dimatikan sejak PHP versi 4.2.0. Sebenarnya, apa perbedaan dari nilai On dan Off? Akan saya bahas disini.

Register global diset lewat file php.ini. Untuk pemakai Windows, file tersebut berada pada direktori Windows anda. Pemakai linux, biasanya pada direktori /usr/lib/php. Apa yang terjadi jika register global bernilai On? bahaya. Karena pada setting ini, semua variabel yang dikirim melalu metode post, get, juga variabel session dan cookie dianggap sama. Sebagai contoh:

<?
if(isset($submit)) {
echo $tes;
}
?>
<html>
<head>
<title>Register Global</title>
</head>
<body>

<form name="frm1" method="post">
<input type="text" name="tes" />
<input type="submit" name="submit" value="Kirim"
/>
</form>

</body>
</html>

Jika file tersebut kita simpan dengan nama tes.php, pada register global yang bernilai On, bisa dijalankan dengan cara seperti ini: http://localhost/tes.php.
Seolah, tak ada yang aneh dengan program diatas. Tapi tunggu dulu, bagaimana kalau kita menjalankan program diatas dengan URL berikut: http://localhost/tes.php?submit=1&tes=nahlho. Seolah, form yang kita buat tak berarti sama sekali. Ingat, ini baru sebuah file test, bagaimana jika hal ini terjadi pada sebuah aplikasi web yang sangat peka terhadap keamanan? oh, tak tahulah saya.

Sekarang, bagaimana merubah skrip diatas, agar bisa dijalankan dengan register global yang bernilai off? simpel saja. Lihat skrip dibawah ini:

<?
if(isset($_POST[’submit’])) {
echo $_POST[’tes’];
}
?>
<html>
<head>
<title>Register Global</title>
</head>
<body>

<form name="frm1" method="post">
<input type="text" name="tes" />
<input type="submit" name="submit" value="Kirim"
/>
</form>

</body>
</html>

Sekilas, jadi terlihat sulit, karena harus menambahkan “sesuatu” lagi. Tapi tak apa, inilah awal belajar PHP, memperhatikan keamanan skrip yang kita buat. Jika register global bernilai Off, maka, semua variabel yang datang, disikapi dari mana ia datang. Kebetulan, dalam skrip diatas, kita menggunakan form yang metodenya post, maka variabel yang diterima haruslah $_POST[’nama_variabel’]. Jika variabel itu berasal dari alamat URL, maka variabel itu haruslah seperti $_GET[’nama_variabel’].

Jangan menganjurkan saya untuk membuat buku PHP, karena sudah terlalu banyak buku PHP di tanah air. Inginnya sih membuat buku tentang XHTML dan CSS, karena sampai saat ini belum ada di tanah air, dan barangkali saja bisa meningkatkan jumlah pemakai blog di Indonesia. Tapi, lagi-lagi, hal ini terbentur dengan keadaan monitor, hardisk, dan CDRom dirumah yang sudah minta diganti.


Share:
These icons link to social bookmarking sites where readers can share and discover new web pages.

  • bodytext
  • del.icio.us
  • Facebook
  • Google
  • Ma.gnolia
  • StumbleUpon
  • Technorati

Daftar sekarang juga untuk cara gampang dapat uang lewat blog


24 Comments


Gravatar
#1. Syahrani » 28.02.2005

brrrrrrrrrrrrrr ga paham :( bukan bidangnya :( heheheh ajarin dung :p

Gravatar
#2. Jauhari » 02.03.2005

Apakah itu aja efek dari register Global di ON khan? adakah yang lain? efek yang lain? Suwun Kang.

Gravatar
#3. edwin » 03.03.2005

:) contoh pertanyaan diatas dari saya yah, makasih atas penjelasannya

Gravatar
#4. edwin » 03.03.2005

saya masih blm ngerti tentang pengunaan variabel yang tepat, bisa kasih referensi buku yang bagus ga? :)

Gravatar
#5. reno » 04.03.2005

Ah… ternyata tulisan situ lebih bagus dari yang saya tulis.

Gravatar
#6. sweedia » 13.06.2005

tanya mas didat, seandainya sudah terlanjur gak pake $_GET/POST[’nama_variabel’] apa musti saya ganti satu satu ato mesti gimana? saya denger di mambo ada suatu skrip tambahan untuk ngatasin ini. CMIIW

Gravatar
#7. tom » 08.07.2005

saya menemui masalah, Mis Ada program A dan B. form action ada prog A adalah prog B, form action pada prog B ada lah $PHP_SELF. Ketika submit pada program B, nilai2 variabel dari program A hilang semua. Kenapa iya?

Gravatar
#8. bojong » 24.08.2005

banyak applikasi php yang ngak jalan kalau register_global itu off.. (postnuke, phpnuke, mambo, geeklog, dll)..
apa mesti modif semua tuh…

Gravatar
#9. zoel » 14.12.2005

Tapi bagai mana jika berhadapan dengan server yang awalnya setingan globalnya on menjadi off dan semua coding kita telah selesai kita buat?(”pengalaman pribadi saya”) …apakah kita harus mengeditnya semua? “pasti melelahkan”, mungkin ini satu cara yang bisa kita lakukan dengan menambahkan atau mengedit file “.httaccess” yang ada di server kita dan menambahkan baris “php_flag register_globals on” cara ini cukup menghemat waktu :-)

Gravatar
#10. vainstatic » 09.01.2006

Article-nya simple juga and mudah banget di pelajari, dari pada gw beli buku di gramedia ;))

Gravatar
#11. r4z0rBL4d3 » 01.06.2006

contoh scriptnya koko sedikit oy

Gravatar
#12. lilamr » 06.09.2006

buku tentang css udah ada lho mas.
kemarin dapat nemu 1 di gramed.
kayaknya sih emang baru satu itu aja…

Gravatar
#13. daniel » 13.10.2006

gimana kalo udah bikin aplikasi web untuk global on tapi tiba2 harus di-set bekerja pada global off semua?

Gravatar
#14. pdbq » 19.11.2006

Hallloooo boss, gw br liat weblog ini..dr dulu gw mau bikin web sll ga berhasil2..pusing nich..klo blh nih, gw minta script yang sederhana aja tp yang ada databasenya..thx b4

Gravatar
#15. bimo septyo p » 12.01.2007

bang ikut milis apa saja

Gravatar
#16. nuarta » 10.03.2007

thanks

Gravatar
#17. piet » 09.04.2007

wah tp kalo register globalnya OFF, saya jadi ga bisa login ke halaman adminnya.. gimana duongs?? >__<

Gravatar
#18. ME! » 25.05.2007

Pas bgt…
tugas ttg reg glob on/off besok dikumpulin…
suwun y mZ didatz..

Gravatar
#19. noez » 19.06.2007

tutor yg baus mas, kalo ada yang lain yang menyakkut var global off dimana lagi yah.. soalnya saya butuh bgt buat referansi kul.. buka php.net malah bingung heuheuheue :)

Gravatar
#20. noez » 04.08.2007

untuk jaman sekarang ini, buku2 di indonesia kebanyakan menggunakan var global ON semua, padahal kenyataannya PHP dari versi 4,xx sudah mendefauktkan php global Off ,, hehhe piye ??

Gravatar
#21. h2o » 10.11.2007

zip….

Gravatar
#22. alvian » 01.02.2008

salam kenal mas didats, saya baru awal dan mulai belajar web program. klo tidak keberatan ada yang ingin saya tanyakan?
bagaimna cara membuat scrip html untuk form registration/reservation yang nantinya akan terkirim ke email yang bersangkutan. thanks, dan buat temen-temen bloger yang mau berkenan bantu saya ucapakan banyak terima kasih.

alvian
arrua_work@yahoo.com

Gravatar
#23. Hari » 07.02.2008

Apa Gak Ada Cara Yang Lebih Mudah

Gravatar
#24. anton » 18.04.2008

salam,

wah makasih sekali bos artikelnya. di gogel #2 lho. kata kunci register global. oke deh wassalam…

hilman.web.id

Leave a Reply




Daftar sekarang juga untuk cara gampang dapat uang lewat blog