Saturday, March 2, 2013

Mengatasi Warning Error di Timezone PHP



Pada artikel kali ini saya akan membahas tentang masalah (warning error) yang muncul pada konfigurasi PHP. Disini, saya juga memberikan contoh-contoh warning error berikut beserta penyebab dan solusinya. Akhir-akhir ini banyak ditemukan adanya sistem error yang sering muncul ketika kita (user) mengoperasikan suatu program, atau dalam kasus ini yaitu PHP (Personal Home Page).  
Warning: date_default_timezone_get [function.date-default-timezone-get]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ...

Apa  penyebabnya? dan Bagaimana solusi untuk menghilangkan Warning tersebut?
Peringatan di atas muncul karena diaktifkannya E_STRICT dan E_NOTICE dalam konfigurasi PHP..  Pesan di atas mengingatkan anda untuk membuat script PHP yang di dalamnya menggunakan function date, Anda harus menyertakan perintah date_default_timezone_set dalam script tersebut sebelum function date muncul, supaya warning tersebut tidak muncul.
Lalu bagaimana jika suatu ketika, kita sudah telanjur membuat banyak script, misalkan ratusan, dalam sebuah folder di mana kesemuanya menggunakan perintah date di dalamnya. Apakah kita juga harus mengedit semua script tersebut untuk menambahkan perintah date_default_timezone_set??
Langkah-langkah yang harus dilakukan
1.      Membuat sebuah file.htaccess yang berisi perintah berikut ini
php_value date.timezone Asia/Jakarta 
2.      Gunakan Notepad atau Notepad++ atau Text Editor lain utuk euat file .htaccess
3.      Tulis perintah diatas php_value date.timezone Asia/Jakarta 
4.    File .htaccess tersebut cukup diletakkan di dalam folder script PHP anda atau di root direktory web.
5.   Simpan file dengan  nama .htaccess (jangan lupa tanda titik “.” didepannya) save as  type diubah mejadi all files.
6.      Maka hilanglah semua warning tersebut. 

Selain penjelasan diatas, saya juga memberikan contoh warning error yang sering muncul dan menjadi kendala bagi anda untuk mengatasinya.
 
Berikut Contoh, Penyebab beserta Solusi mengatasinya :
1. Bunyi Error:
1.Warning: mysql_fetch_array(): supplied argument is not
2.a valid MySQL result resource in ....
atau
1.Warning: mysql_num_rows(): supplied argument is not
2.a valid MySQL result resource in ...
Penyebab:
Error di atas disebabkan ada query SQL yang salah. Bisa jadi karena sintaks perintah query SQL nya salah, misalnya kurang tanda petik untuk menyatakan string dll. Selain itu bisa juga terjadi karena nama field dan tabel yang salah penulisannya.
Solusi:
Coba cek kembali statement query SQL Anda. Pastikan tidak ada lagi kesalahan dalam penulisannya. Untuk proses debugging query SQL (mengetahui letak kesalahannya), Anda bisa menambahkan statement die(mysql_error()) pada perintah mysql_query() nya. 
Contoh:
1.$query = ".....";
2.mysql_query($query) or die(mysql_error());
3..
4..
 
2. Bunyi Error:

1.Parse error: syntax error, unexpected T_STRING
Penyebab:
Error tersebut disebabkan karena penggunaan tanda petik (double quote atau single quote) yang tidak tepat untuk menyatakan suatu string. Sebuah string harus diapit oleh dua buah tanda petik. 
Sebagai contoh:
1.
2.$a = "ini sebuah string";
3.?>
 atau
1.
2.$a = 'ini sebuah string';
3.?>
Namun... jika dalam string tersebut terdapat tanda petik lagi, misalkan
1.
2.$a = "ini sebuah " string";
3.?>
atau
1.
2.$a = 'ini sebuah ' string';
3.?>
maka akan terdapat error di atas. Hal yang sama jika Anda menggunakan single quote (tanda petik tunggal).
Solusi:
Pastikan di dalam sebuah string, anda mengapitnya dengan hanya 2 buah tanda petik saja. Jika Anda bermaksud menyisipkan tanda petik dalam sebuah string, gunakan tanda \" atau \',
contoh
1.
2.$a = "ini sebuah \" string";
3.?>
atau
1.
2.$a = 'ini sebuah \' string';
3.?>
3. Bunyi Error:
1.Warning: mysql_connect() [function.mysql-connect]:
2.Access denied for user ‘root’@'localhost’ (using password: 
 YES) in ...
Penyebab:
Error di atas disebabkan karena koneksi yang gagal ke MySQL. Penyebab gagalnya bisa jadi disebabkan nama user atau password yang salah. 
Solusi:
Pastikan username dan password koneksi ke MySQL Anda sudah benar ketika menggunakan perintah koneksi mysql_connect("namahost", "namauser", "passworduser")
 
Demikian tadi, sedikit saya share tentang contoh masalah warning error yang sering muncul. Mudah-mudahan apa yang dibahas dalam artikel ini bermanfaat bagi anda yang ingin belajar PHP namun terkendala beberapa macam error yang belum tau penyebabnya dan bagaimana solusinya. 
 NAMA    : Agustinus Aprinaldi Silalahi
 NIM         :1032003
 KELAS   :MI Pagi