Skip to main content
Register globals adalah salah satu setting dalam konfigurasi PHP, yang menentukan apakah variabel-variabel superglobal akan dapat diakses secara langsung atau tidak oleh script PHP. Misalnya, kalau status register globals adalah On, maka kita bisa langsung menggunakan $PHP_SELF, tapi kalau statusnya Off, kita harus memakai $_SERVER['PHP_SELF']. Ini berlaku juga untuk variabel-variabel yang dikirim oleh browser, baik dengan metode POST ($_POST[]), maupun metode GET ($_GET[]).

Jika register globals diatur On, maka setiap variabel langsung bisa dipanggil sesuai namanya, misalnya ada variabel masukan dengan nama "id", bisa langsung diakses sebagai $id. Tapi kalau statusnya Off, maka pemanggilan langsung akan error, dan harus diakses dengan cara $_POST['id'] jika dikirim secara POST, atau $_GET['id'] jika dikirim melalui GET. Secara security, akan lebih aman jika register globals diatur Off, tapi pemrogramannya akan lebih repot.

Sebenarnya hal ini sudah pernah beberapa kali aku diskusikan dengan Arif. Tapi karena aku nggak mau repot-repot, maka register globals aku On kan, jadi mrogram PHP lebih simple. Tapi tadi siang baru ketemu kasus yang memaksaku berubah pikiran.

Pak Iwan mencoba nginstall Apache+MySQL+PHP, dan ternyata default dari setting PHP untuk register globals itu adalah off. Jadi program PHP yang aku buat nggak bisa berjalan normal. Terus setelah dipikir-pikir, dan berdiskusi dengan Pak Iwan, kayaknya jauh lebih baik kalau aku mengikuti aturan memakai register globals yang Off. Pertama, secara security lebih aman (meski aku nggak tahu gimana cara membobol program melalui setting itu), dan yang kedua (yang terpenting) adalah lebih fleksible.

Kalau aku atur register globalsnya On, maka agar program ini berfungsi dengan baik, maka setting PHP di server harus dibuat On. Jika program ini mau diinstall di server yang sudah disetting Off untuk register globals, maka program ini nggak akan berfungsi :(
Tapi sebaliknya, kalau program PHP yang kubuat bisa jalan walaupun settingnya Off, maka kalau settingnya On, maka program PHP ini akan tetap berjalan normal!

Jadi, ya ... kerjaanku hari ini mengubah program D'Lagate, agar bisa dijalankan dengan normal di lingkungan PHP yang register globalsnya Off. Nggak sulit sih, cuma cukup banyak yang harus diubah, soalnya semua harus dicek satu-satu (belasan lebih ....)

Oh ya, ada satu lagi variabel sistem yang bisa dipakai :: $_REQUEST[], ini merupakan gabungan $_POST dengan $_GET. Jadi kalau gak tahu method apa, paling enak memakai $_REQUEST ini.

Comments

Popular posts from this blog

PostGreSQL :: Hitung Umur

Ternyata untuk menghitung umur dari data yang disimpan di PostGreSQL sangat gampang. PostGreSQL sendiri sudah menyediakan fungsi yang mendukung. Beberapa fungsi yang bisa dipakai adalah AGE dan EXTRACT. AGE dipakai untuk menghitung umur dari sebuah data, dibandingkan dengan hari ini, atau dengan data lain (tipenya timestamp). Misal: age(timestamp '1980-09-27'), akan menghasilkan nilai (bertipe interval) "24 years 1 mon 25 days". Nah, kalau mau mengambil nilai tahunnya saja, tinggal menggunakan EXTRACT Contoh: EXTRACT(year FROM AGE(timestamp '2001-09-27')), hasilnya akan jadi 24.

PHP :: Selisih Jam

Setelah kemarin kesulitan untuk melakukan increment ataupun decrement terhadap variabel waktu (date/time) di PHP, kali ini nemuin masalah untuk mencari selisih waktu (dari satu jam ke jam tertentu), yang perlu untuk ngitung lembur karyawan. Tadinya kepikiran untuk buat fungsi sendiri, yang flow -nya kira-kira begini: - masing-masing dipisah menjadi jam, menit, detik - bandingkan antara keduanya. - lakukan pengurangan terhadap masing-masing komponen (jam, menit dan detik) - gabungkan hasil perhitungan ... (selisih jam + selisih menit + selisih detik) Tapi waktu aku ingat kasus Next Date, ... muncul ide untuk menggunakan cara yang sama, yaitu memanfaatkan format UNIX timestamp, terus nyoba mencari selisihnya. TERNYATA BERHASIL !!! Flownya seperti ini: - masing-masing dipisah menjadi jam, menit,detik - ubah masing-masing ke format timestamp, gunakan fungsi mktime() - kurangkan kedua jam - hasilnya dibagi 60 (karena satuannya pakai menit), sementara selisih timestamp itu dalam detik Algori

Delphi :: Split String

Akhirnya ketemu juga cara untuk melakukan split string. (Terbiasa pakai PHP sih, yang sangat memanjakan dalam pengelolaan string.) Di sini memanfaatkan TStringList, unit Classes. // procedure untuk split string procedure Split (const Delimiter: Char; // delimiter charachter Input: string; // input string const Strings: TStrings) ; // list of string result begin Assert(Assigned(Strings)) ; Strings.Clear; Strings.Delimiter := Delimiter; Strings.DelimitedText := Input; end; // contoh pemakaian procedure TForm1.Button1Click(Sender: TObject) ; var A: TStringList; begin A := TStringList.Create; try Split(' ', 'your delphi guide', A) ; ShowMessage(a[0]) ; //your ShowMessage(a[1]) ; //delphi ShowMessage(a[2]) ; //guide finally A.Free; end; end; Source : http://delphi.about.com/cs/adptips2002/a/bltip1102_5.htm Wheew .. akhirnya. One step ahead!!