Skip to main content

[Debug] Dua Masalah PHP

Siang tadi mendapat tugas untuk memeriksa dua aplikasi bermasalah, keduanya bukan aku yang mengerjakan, dan keduanya terkait dengan PHP. Karena gak bisa aku kerjakan siang, jadi terpaksa aku cek malam hari, itupun dengan setengah niat. Kalau susah ya aku tinggalkan, kalau mudah ya aku bereskan. Kedua masalah memiliki dampak yang sama, membuat aplikasi tidak bisa berjalan semestinya, dan tanpa keterangan kesalahan yang jelas. Pokoknya pelapor hanya menyebutkan bahwa website gak jalan.

Masalah pertama, terkait dengan proyek donasi, yang melakukan integrasi dengan paypal. Sebelumnya kami sudah melakukan testing di server sementara (punya kantor), dan pihak web designer mencoba menggabungkan program kami dengan desain mereka, dan menginstall di server mereka. Meskipun sudah diinstall sesuai petunjuk, tetap saja program error. Untuk kali ini pas aku coba, pesan errornya cukup jelas : "tidak bisa mengakses file /var/www/xxx/dst...". Ok, mudah, pikirku. Pas aku cek filenya, ada kok :-? Kenapa katanya file ini gak bisa diakses ya :-? Permission juga oke, 644. Mulai puyeng ... Setelah coba baca-baca programnya, ternyata memang masalahnya sepele, meskipun perlu waktu juga untuk menemukan.
Aku cukup mengganti folder dari "/var/www/xxx/dst.." menjadi "xxx/dst". Rupanya webserver tidak diberi akses ke /var/www

Fuih .. testing, lancar, kirim email laporan.

Masalah kedua, membingungkan. Pertama, aku lupa bagaimana cara melakukan testing terhadap fitur yang katanya error tadi. Ngoprek program kanan-kiri, setelah setengah jam baru ketemu caranya. Simple, cukup entri data baru :) Baru ketahuan errornya, rupanya website yang dituju tidak bisa diakses. Entah kenapa mendadak ada pesan 500, Fatal Error. Untung saja ini juga program untuk demo product, jadi bukan program milik customer. Bisa panik kalau client yang complain. Soalnya sudah lama gak ngelihat demo ini, gak ada update, eh mendadak kok error.

Aku coba hapus programnya, dan cuma menampilkan echo "ABC". Masih muncul error juga. Waduh, kenapa lagi. Aku hapus semua isi file, tetap saja muncul error yang sama. Wah, dah gak masuk akal nih. Syukurlah Tuhan masih baik, mataku diarahkan pada file error_log, yang jam updatenya belum lama. Artinya log ini uptodate, menyimpan data error terbaru. Benar, waktu aku buka, ketahuan errornya terkait "allow_call_time_pass_reference". Katanya fungsi itu sudah tidak didukung lagi. Wah ... berarti masala hosting nih.

Pas dah siap-siap buat tidur, karena kupikir ini harus ngirim ticket pertanyaak ke penyedia hosting yang mendingan aku lakukan besoknya, aku coba googling. Eh, ketemu web ini https://processwire.com/talk/topic/1724-directive-allow-call-time-pass-reference-is-no-longer-available-in-php/

Di situ ada juga link untuk memberi solusi, tapi ada posting juga yang dengan gamblang memberi solusi : cukup edit php.ini, dan non aktifkan pilihan itu. Rupanya parameter ini sudah tidak lagi didukung oleh PHP versi terbaru, jadi harus dimatikan. Pantesan saja error terus, meskipun tidak menjalankan program apapun.

Problems solved, waktunya tidur!

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!!